No public description

PiperOrigin-RevId: 795067303
Change-Id: Ib36c7b52de38a6aa9732c7e4da9795a9679b093f
diff --git a/riscv/BUILD b/riscv/BUILD
index fe6c8b6..8519c32 100644
--- a/riscv/BUILD
+++ b/riscv/BUILD
@@ -325,6 +325,7 @@
         ":riscv_state",
         "@com_google_absl//absl/log",
         "@com_google_absl//absl/numeric:bits",
+        "@com_google_absl//absl/strings",
         "@com_google_absl//absl/types:span",
         "@com_google_mpact-sim//mpact/sim/generic:instruction",
         "@com_google_mpact-sim//mpact/sim/generic:type_helpers",
@@ -1254,6 +1255,7 @@
     ],
     features = ["-use_header_modules"],
     deps = [
+        "@com_google_absl//absl/status",
         "@com_google_absl//absl/status:statusor",
     ],
 )
@@ -1408,6 +1410,8 @@
     ],
     deps = [
         "@com_google_absl//absl/strings",
+        "@com_google_mpact-sim//mpact/sim/generic:core",
+        "@com_google_mpact-sim//mpact/sim/generic:instruction",
         "@com_google_mpact-sim//mpact/sim/util/memory",
     ],
 )
diff --git a/riscv/debug_command_shell.cc b/riscv/debug_command_shell.cc
index 6afea13..c05ce16 100644
--- a/riscv/debug_command_shell.cc
+++ b/riscv/debug_command_shell.cc
@@ -165,19 +165,19 @@
 )raw";
 }
 
-void DebugCommandShell::AddCore(const CoreAccess &core_access) {
+void DebugCommandShell::AddCore(const CoreAccess& core_access) {
   core_access_.push_back(core_access);
   core_action_point_id_.push_back(0);
   core_action_point_info_.emplace_back();
 }
 
-void DebugCommandShell::AddCores(const std::vector<CoreAccess> &core_access) {
-  for (auto &core : core_access) {
+void DebugCommandShell::AddCores(const std::vector<CoreAccess>& core_access) {
+  for (auto& core : core_access) {
     AddCore(core);
   }
 }
 // NOLINTBEGIN(readability/fn_size)
-void DebugCommandShell::Run(std::istream &is, std::ostream &os) {
+void DebugCommandShell::Run(std::istream& is, std::ostream& os) {
   // Assumes the max linesize is 512.
   command_streams_.push_back(&is);
   constexpr int kLineSize = 512;
@@ -219,7 +219,7 @@
       }
     }
     if (pc_result.ok()) {
-      auto *loader = core_access_[current_core_].loader_getter();
+      auto* loader = core_access_[current_core_].loader_getter();
       if (loader != nullptr) {
         auto fcn_result = loader->GetFunctionName(pc_result.value());
         if (fcn_result.ok()) {
@@ -242,7 +242,7 @@
     }
     absl::StrAppend(&prompt, "[", current_core_, "] > ");
     while (!command_streams_.empty()) {
-      auto &current_is = *command_streams_.back();
+      auto& current_is = *command_streams_.back();
       // Ignore comments or empty lines.
       bool is_file = command_streams_.size() > 1;
       // Read a command from the input stream. If it's from a file, then ignore
@@ -286,7 +286,7 @@
 
     // First try any added custom commands.
     bool executed = false;
-    for (auto &fcn : command_functions_) {
+    for (auto& fcn : command_functions_) {
       std::string output;
       executed = fcn(line_view, core_access_[current_core_], output);
       if (executed) {
@@ -442,7 +442,7 @@
         os.flush();
         continue;
       }
-      auto *db = result.value();
+      auto* db = result.value();
       // Check for null data buffer.
       if (db == nullptr) {
         os << "Error: register '" << name << "' has no data buffer\n";
@@ -488,7 +488,7 @@
         os << "Error: " << result.status().message() << std::endl;
         continue;
       }
-      auto *db = result.value();
+      auto* db = result.value();
       // Check for null data buffer.
       if (db == nullptr) {
         os << "Error: register '" << name << "' has no data buffer\n";
@@ -649,7 +649,7 @@
         bool active =
             core_access_[current_core_].debug_interface->HasBreakpoint(address);
         std::string symbol;
-        auto *loader = core_access_[current_core_].loader_getter();
+        auto* loader = core_access_[current_core_].loader_getter();
         if (loader != nullptr) {
           auto res = loader->GetFcnSymbolName(address);
           if (res.ok()) symbol = std::move(res.value());
@@ -665,7 +665,7 @@
 
     // help
     if (RE2::FullMatch(line_view, *help_re_)) {
-      for (auto const &usage : command_usage_) {
+      for (auto const& usage : command_usage_) {
         os << usage << std::endl;
       }
       os << help_message_;
@@ -745,7 +745,7 @@
         continue;
       }
       size_t length = result.value();
-      auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+      auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
           core_access_[current_core_].debug_interface);
       auto cmd_result =
           riscv_interface->SetDataWatchpoint(address, length, access_type);
@@ -784,7 +784,7 @@
       uint64_t address = iter->second.address;
       size_t length = iter->second.length;
       AccessType access_type = iter->second.access_type;
-      auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+      auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
           core_access_[current_core_].debug_interface);
       auto status =
           riscv_interface->SetDataWatchpoint(address, length, access_type);
@@ -813,7 +813,7 @@
       if (!iter->second.active) continue;
       uint64_t address = iter->second.address;
       auto access_type = iter->second.access_type;
-      auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+      auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
           core_access_[current_core_].debug_interface);
       auto status = riscv_interface->ClearDataWatchpoint(address, access_type);
       if (!status.ok()) {
@@ -826,12 +826,12 @@
 
     // watch clear-all
     if (RE2::FullMatch(line_view, *clear_all_watch_re_)) {
-      for (auto &[index, info] : core_access_[current_core_].watchpoint_map) {
+      for (auto& [index, info] : core_access_[current_core_].watchpoint_map) {
         if (!info.active) continue;
 
         uint64_t address = info.address;
         auto access_type = info.access_type;
-        auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+        auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
             core_access_[current_core_].debug_interface);
         auto status =
             riscv_interface->ClearDataWatchpoint(address, access_type);
@@ -866,10 +866,10 @@
         access_type = AccessType::kLoadStore;
       }
       bool done = false;
-      for (auto &[index, info] : core_access_[current_core_].watchpoint_map) {
+      for (auto& [index, info] : core_access_[current_core_].watchpoint_map) {
         if ((info.address == result.value()) &&
             (info.access_type == access_type)) {
-          auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+          auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
               core_access_[current_core_].debug_interface);
           auto cmd_result =
               riscv_interface->ClearDataWatchpoint(result.value(), access_type);
@@ -921,7 +921,7 @@
         continue;
       }
       size_t length = result.value();
-      auto *riscv_interface = reinterpret_cast<RiscVDebugInterface *>(
+      auto* riscv_interface = reinterpret_cast<RiscVDebugInterface*>(
           core_access_[current_core_].debug_interface);
       auto cmd_result =
           riscv_interface->SetDataWatchpoint(address, length, access_type);
@@ -942,10 +942,10 @@
     // watch list
     if (RE2::FullMatch(line_view, *list_watch_re_)) {
       std::string bp_list;
-      for (auto const &[index, info] :
+      for (auto const& [index, info] :
            core_access_[current_core_].watchpoint_map) {
         std::string symbol;
-        auto *loader = core_access_[current_core_].loader_getter();
+        auto* loader = core_access_[current_core_].loader_getter();
         if (loader != nullptr) {
           auto res = loader->GetFcnSymbolName(info.address);
           if (res.ok()) symbol = std::move(res.value());
@@ -1027,7 +1027,7 @@
         os << "Error: " << result.status().message() << "\n";
         continue;
       }
-      auto *db = result.value();
+      auto* db = result.value();
       // Check for null data buffer.
       if (db == nullptr) {
         os << "Error: register '$branch_trace' has no data buffer\n";
@@ -1052,7 +1052,7 @@
 
     if (std::string file_name;
         RE2::FullMatch(line_view, *exec_re_, &file_name)) {
-      auto *ifile = new std::ifstream(file_name);
+      auto* ifile = new std::ifstream(file_name);
       if (!ifile->is_open() || !ifile->good()) {
         os << "Error: unable to open '" << file_name << "'\n";
         os.flush();
@@ -1116,7 +1116,7 @@
 
 // Templated helper function to help format integer values of different widths.
 template <typename T>
-std::string FormatDbValue(generic::DataBuffer *db, const std::string &format,
+std::string FormatDbValue(generic::DataBuffer* db, const std::string& format,
                           int index) {
   std::string output;
   if (index < 0 || index >= db->size<T>()) return "Error: index out of range";
@@ -1145,9 +1145,9 @@
 }
 
 template <typename T>
-absl::Status WriteDbValue(const std::string &str_value,
-                          const std::string &format, int index,
-                          generic::DataBuffer *db) {
+absl::Status WriteDbValue(const std::string& str_value,
+                          const std::string& format, int index,
+                          generic::DataBuffer* db) {
   if (index < 0 || index >= db->size<T>())
     return absl::OutOfRangeError("Error: index out of range");
   if (format[0] == 'd') {
@@ -1182,8 +1182,8 @@
 
 }  // namespace
 
-std::string DebugCommandShell::FormatSingleDbValue(generic::DataBuffer *db,
-                                                   const std::string &format,
+std::string DebugCommandShell::FormatSingleDbValue(generic::DataBuffer* db,
+                                                   const std::string& format,
                                                    int width, int index) const {
   switch (width) {
     case 8:
@@ -1199,8 +1199,8 @@
   }
 }
 
-std::string DebugCommandShell::FormatAllDbValues(generic::DataBuffer *db,
-                                                 const std::string &format,
+std::string DebugCommandShell::FormatAllDbValues(generic::DataBuffer* db,
+                                                 const std::string& format,
                                                  int width) const {
   std::string output;
   std::string sep;
@@ -1237,7 +1237,7 @@
 }
 
 absl::Status DebugCommandShell::WriteSingleValueToDb(
-    const std::string &str_value, generic::DataBuffer *db, std::string format,
+    const std::string& str_value, generic::DataBuffer* db, std::string format,
     int width, int index) const {
   switch (width) {
     case 8:
@@ -1255,8 +1255,8 @@
 }
 
 std::string DebugCommandShell::ReadMemory(int core,
-                                          const std::string &str_value,
-                                          const std::string &format) {
+                                          const std::string& str_value,
+                                          const std::string& format) {
   int size = 0;
   char format_char = 'x';
   int bit_width = 32;
@@ -1310,15 +1310,15 @@
   }
 
   // Get the result and format it.
-  void *void_buffer = mem_buffer_;
+  void* void_buffer = mem_buffer_;
   std::string output;
   if ((format_char == 'f') && (bit_width >= 32)) {
     switch (bit_width) {
       case 32:
-        output = absl::StrCat(*reinterpret_cast<float *>(void_buffer));
+        output = absl::StrCat(*reinterpret_cast<float*>(void_buffer));
         break;
       case 64:
-        output = absl::StrCat(*reinterpret_cast<double *>(void_buffer));
+        output = absl::StrCat(*reinterpret_cast<double*>(void_buffer));
         break;
       default:
         break;
@@ -1326,16 +1326,16 @@
   } else if (format_char == 'd') {
     switch (bit_width) {
       case 8:
-        output = absl::StrCat(*static_cast<int8_t *>(void_buffer));
+        output = absl::StrCat(*static_cast<int8_t*>(void_buffer));
         break;
       case 16:
-        output = absl::StrCat(*static_cast<int16_t *>(void_buffer));
+        output = absl::StrCat(*static_cast<int16_t*>(void_buffer));
         break;
       case 32:
-        output = absl::StrCat(*static_cast<int32_t *>(void_buffer));
+        output = absl::StrCat(*static_cast<int32_t*>(void_buffer));
         break;
       case 64:
-        output = absl::StrCat(*static_cast<int64_t *>(void_buffer));
+        output = absl::StrCat(*static_cast<int64_t*>(void_buffer));
         break;
       default:
         break;
@@ -1345,19 +1345,19 @@
     auto pad = absl::PadSpec::kNoPad;
     switch (bit_width) {
       case 8:
-        val = *static_cast<uint8_t *>(void_buffer);
+        val = *static_cast<uint8_t*>(void_buffer);
         pad = absl::PadSpec::kZeroPad2;
         break;
       case 16:
-        val = *static_cast<uint16_t *>(void_buffer);
+        val = *static_cast<uint16_t*>(void_buffer);
         pad = absl::PadSpec::kZeroPad4;
         break;
       case 32:
-        val = *static_cast<uint32_t *>(void_buffer);
+        val = *static_cast<uint32_t*>(void_buffer);
         pad = absl::PadSpec::kZeroPad8;
         break;
       case 64:
-        val = *static_cast<uint64_t *>(void_buffer);
+        val = *static_cast<uint64_t*>(void_buffer);
         pad = absl::PadSpec::kZeroPad16;
         break;
     }
@@ -1375,9 +1375,9 @@
 }
 
 std::string DebugCommandShell::WriteMemory(int core,
-                                           const std::string &str_value1,
-                                           const std::string &format,
-                                           const std::string &str_value2) {
+                                           const std::string& str_value1,
+                                           const std::string& format,
+                                           const std::string& str_value2) {
   int size = 0;
   char format_char = '\0';
   int radix = 0;
@@ -1446,7 +1446,7 @@
 }
 
 absl::StatusOr<uint64_t> DebugCommandShell::GetValueFromString(
-    int core, const std::string &str_value, int radix) {
+    int core, const std::string& str_value, int radix) {
   size_t index;
   // Attempt to convert to a number.
   auto convert_result = internal::stoull(str_value, &index, radix);
@@ -1459,7 +1459,7 @@
     return convert_result.status();
   }
   // If all else fails, let's see if it's a symbol.
-  auto *loader = core_access_[current_core_].loader_getter();
+  auto* loader = core_access_[current_core_].loader_getter();
   if (loader == nullptr) return absl::NotFoundError("No symbol table");
   auto result = loader->GetSymbol(str_value);
   if (!result.ok()) return result.status();
@@ -1467,7 +1467,7 @@
 }
 
 std::string DebugCommandShell::FormatRegister(
-    int core, const std::string &reg_name) const {
+    int core, const std::string& reg_name) const {
   std::string output;
   auto result =
       core_access_[current_core_].debug_interface->ReadRegister(reg_name);
@@ -1482,7 +1482,7 @@
 
 std::string DebugCommandShell::FormatAllRegisters(int core) const {
   std::string output;
-  for (auto const &reg_name : reg_vector_) {
+  for (auto const& reg_name : reg_vector_) {
     absl::StrAppend(&output, FormatRegister(current_core_, reg_name), "\n");
   }
   return output;
@@ -1491,8 +1491,8 @@
 // Action point methods.
 std::string DebugCommandShell::ListActionPoints() {
   std::string output;
-  auto &action_map = core_action_point_info_[current_core_];
-  for (auto const &[local_id, info] : action_map) {
+  auto& action_map = core_action_point_info_[current_core_];
+  for (auto const& [local_id, info] : action_map) {
     absl::StrAppend(
         &output,
         absl::StrFormat("%02d  [0x%08lx] %8s  %s\n", local_id, info.address,
@@ -1502,24 +1502,24 @@
 }
 
 std::string DebugCommandShell::EnableActionPointN(
-    const std::string &index_str) {
+    const std::string& index_str) {
   auto res = riscv::internal::stoull(index_str, nullptr, 10);
   if (!res.ok()) {
     return std::string(res.status().message());
   }
-  auto &action_map = core_action_point_info_[current_core_];
+  auto& action_map = core_action_point_info_[current_core_];
   int index = res.value();
   auto it = action_map.find(index);
   if (it == action_map.end()) {
     return absl::StrCat("Action point ", index, " not found");
   }
-  auto &info = it->second;
+  auto& info = it->second;
   if (info.is_enabled) {
     return absl::StrCat("Action point ", index, " is already enabled");
   }
   info.is_enabled = true;
-  auto *dbg_if = core_access_[current_core_].debug_interface;
-  auto *riscv_dbg_if = static_cast<RiscVDebugInterface *>(dbg_if);
+  auto* dbg_if = core_access_[current_core_].debug_interface;
+  auto* riscv_dbg_if = static_cast<RiscVDebugInterface*>(dbg_if);
   auto status = riscv_dbg_if->EnableAction(info.address, info.id);
   if (!status.ok()) {
     return absl::StrCat("Error: ", status.message());
@@ -1528,24 +1528,24 @@
 }
 
 std::string DebugCommandShell::DisableActionPointN(
-    const std::string &index_str) {
+    const std::string& index_str) {
   auto res = riscv::internal::stoull(index_str, nullptr, 10);
   if (!res.ok()) {
     return std::string(res.status().message());
   }
-  auto &action_map = core_action_point_info_[current_core_];
+  auto& action_map = core_action_point_info_[current_core_];
   int index = res.value();
   auto it = action_map.find(index);
   if (it == action_map.end()) {
     return absl::StrCat("Action point ", index, " not found");
   }
-  auto &info = it->second;
+  auto& info = it->second;
   if (!info.is_enabled) {
     return absl::StrCat("Action point ", index, " is already disabled");
   }
   info.is_enabled = false;
-  auto *dbg_if = core_access_[current_core_].debug_interface;
-  auto *riscv_dbg_if = static_cast<RiscVDebugInterface *>(dbg_if);
+  auto* dbg_if = core_access_[current_core_].debug_interface;
+  auto* riscv_dbg_if = static_cast<RiscVDebugInterface*>(dbg_if);
   auto status = riscv_dbg_if->DisableAction(info.address, info.id);
   if (!status.ok()) {
     return absl::StrCat("Error: ", status.message());
@@ -1553,20 +1553,20 @@
   return "";
 }
 
-std::string DebugCommandShell::ClearActionPointN(const std::string &index_str) {
+std::string DebugCommandShell::ClearActionPointN(const std::string& index_str) {
   auto res = riscv::internal::stoull(index_str, nullptr, 10);
   if (!res.ok()) {
     return std::string(res.status().message());
   }
-  auto &action_map = core_action_point_info_[current_core_];
+  auto& action_map = core_action_point_info_[current_core_];
   int index = res.value();
   auto it = action_map.find(index);
   if (it == action_map.end()) {
     return absl::StrCat("Action point ", index, " not found");
   }
-  auto &info = it->second;
-  auto *dbg_if = core_access_[current_core_].debug_interface;
-  auto *riscv_dbg_if = static_cast<RiscVDebugInterface *>(dbg_if);
+  auto& info = it->second;
+  auto* dbg_if = core_access_[current_core_].debug_interface;
+  auto* riscv_dbg_if = static_cast<RiscVDebugInterface*>(dbg_if);
   auto status = riscv_dbg_if->ClearActionPoint(info.address, info.id);
   if (!status.ok()) {
     return absl::StrCat("Error: ", status.message());
@@ -1577,9 +1577,9 @@
 
 std::string DebugCommandShell::ClearAllActionPoints() {
   std::string output;
-  auto *dbg_if = core_access_[current_core_].debug_interface;
-  auto *riscv_dbg_if = static_cast<RiscVDebugInterface *>(dbg_if);
-  for (auto &[local_id, info] : core_action_point_info_[current_core_]) {
+  auto* dbg_if = core_access_[current_core_].debug_interface;
+  auto* riscv_dbg_if = static_cast<RiscVDebugInterface*>(dbg_if);
+  for (auto& [local_id, info] : core_action_point_info_[current_core_]) {
     auto status = riscv_dbg_if->ClearActionPoint(info.address, info.id);
     if (!status.ok()) {
       absl::StrAppend(&output, "Error: ", status.message());
@@ -1591,15 +1591,15 @@
 absl::Status DebugCommandShell::SetActionPoint(
     uint64_t address, std::string name,
     absl::AnyInvocable<void(uint64_t, int)> function) {
-  auto *dbg_if = core_access_[current_core_].debug_interface;
-  auto *riscv_dbg_if = static_cast<RiscVDebugInterface *>(dbg_if);
+  auto* dbg_if = core_access_[current_core_].debug_interface;
+  auto* riscv_dbg_if = static_cast<RiscVDebugInterface*>(dbg_if);
   auto result = riscv_dbg_if->SetActionPoint(address, std::move(function));
   if (!result.ok()) {
     return absl::InternalError(result.status().message());
   }
   int id = result.value();
   int local_id = core_action_point_id_[current_core_]++;
-  auto &action_map = core_action_point_info_[current_core_];
+  auto& action_map = core_action_point_info_[current_core_];
   action_map.emplace(local_id, ActionPointInfo{address, id, name, true});
   return absl::OkStatus();
 }
diff --git a/riscv/debug_command_shell.h b/riscv/debug_command_shell.h
index 5e3b445..eba421d 100644
--- a/riscv/debug_command_shell.h
+++ b/riscv/debug_command_shell.h
@@ -49,12 +49,12 @@
   DebugCommandShell();
 
   // Add core access to the system. All cores must be added before calling Run.
-  void AddCore(const CoreAccess &core_access) override;
-  void AddCores(const std::vector<CoreAccess> &core_access) override;
+  void AddCore(const CoreAccess& core_access) override;
+  void AddCores(const std::vector<CoreAccess>& core_access) override;
 
   // The run method is the command interpreter. It parses the command strings,
   // executes the corresponding commands, displays results and error messages.
-  void Run(std::istream &is, std::ostream &os) override;
+  void Run(std::istream& is, std::ostream& os) override;
 
   // This adds a custom command to the command interpreter. Usage will be added
   // to the standard command usage. The callable will be called before the
@@ -78,39 +78,39 @@
   };
 
   // Helper method for formatting single data buffer value.
-  std::string FormatSingleDbValue(generic::DataBuffer *db,
-                                  const std::string &format, int width,
+  std::string FormatSingleDbValue(generic::DataBuffer* db,
+                                  const std::string& format, int width,
                                   int index) const;
   // Helper method for formatting multiple data buffer values.
-  std::string FormatAllDbValues(generic::DataBuffer *db,
-                                const std::string &format, int width) const;
+  std::string FormatAllDbValues(generic::DataBuffer* db,
+                                const std::string& format, int width) const;
   // Helper method for writing single data buffer value.
-  absl::Status WriteSingleValueToDb(const std::string &str_value,
-                                    generic::DataBuffer *db, std::string format,
+  absl::Status WriteSingleValueToDb(const std::string& str_value,
+                                    generic::DataBuffer* db, std::string format,
                                     int width, int index) const;
 
   // Helper method for processing read memory command.
-  std::string ReadMemory(int core, const std::string &str_value,
-                         const std::string &format);
+  std::string ReadMemory(int core, const std::string& str_value,
+                         const std::string& format);
   // Helper method for processing write memory command.
-  std::string WriteMemory(int core, const std::string &str_value1,
-                          const std::string &format,
-                          const std::string &str_value2);
+  std::string WriteMemory(int core, const std::string& str_value1,
+                          const std::string& format,
+                          const std::string& str_value2);
   // Helper method used to parse a numeric string or use the string as a
   // symbol name for lookup in the loader.
   absl::StatusOr<uint64_t> GetValueFromString(int core,
-                                              const std::string &str_value,
+                                              const std::string& str_value,
                                               int radix);
   // Reads and formats a register.
-  std::string FormatRegister(int core, const std::string &reg_name) const;
+  std::string FormatRegister(int core, const std::string& reg_name) const;
   // Reads and formats $all registers - stored in reg_vec_.
   std::string FormatAllRegisters(int core) const;
 
   // Action point handling.
   std::string ListActionPoints();
-  std::string EnableActionPointN(const std::string &index_str);
-  std::string DisableActionPointN(const std::string &index_str);
-  std::string ClearActionPointN(const std::string &index_str);
+  std::string EnableActionPointN(const std::string& index_str);
+  std::string DisableActionPointN(const std::string& index_str);
+  std::string ClearActionPointN(const std::string& index_str);
   std::string ClearAllActionPoints();
 
   std::vector<CoreAccess> core_access_;
@@ -173,7 +173,7 @@
   std::vector<std::string> command_usage_;
   std::vector<std::string> reg_vector_;
   absl::flat_hash_set<std::string> exec_file_names_;
-  std::deque<std::istream *> command_streams_;
+  std::deque<std::istream*> command_streams_;
   std::deque<std::string> previous_commands_;
   std::vector<absl::btree_map<int, ActionPointInfo>> core_action_point_info_;
   std::vector<int> core_action_point_id_;
diff --git a/riscv/riscv32_decoder.cc b/riscv/riscv32_decoder.cc
index 6766049..c63a7c3 100644
--- a/riscv/riscv32_decoder.cc
+++ b/riscv/riscv32_decoder.cc
@@ -32,7 +32,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV32Decoder::RiscV32Decoder(RiscVState *state, util::MemoryInterface *memory)
+RiscV32Decoder::RiscV32Decoder(RiscVState* state, util::MemoryInterface* memory)
     : state_(state), memory_(memory) {
   // Get a handle to the internal error in the program error controller.
   decode_error_ = state->program_error_controller()->GetProgramError(
@@ -57,16 +57,16 @@
   inst_db_->DecRef();
 }
 
-generic::Instruction *RiscV32Decoder::DecodeInstruction(uint64_t address) {
+generic::Instruction* RiscV32Decoder::DecodeInstruction(uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa32::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAddressMisaligned,
                    inst->address() ^ 0x1, inst);
@@ -77,12 +77,12 @@
   // If the address is greater than the max address, return an instruction
   // that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa32::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAccessFault, inst->address(),
                    nullptr);
@@ -97,7 +97,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_);
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_);
   return instruction;
 }
 
diff --git a/riscv/riscv32_decoder.h b/riscv/riscv32_decoder.h
index c19469a..e557ef8 100644
--- a/riscv/riscv32_decoder.h
+++ b/riscv/riscv32_decoder.h
@@ -41,7 +41,7 @@
 class RV32IsaFactory : public isa32::RiscV32GInstructionSetFactory {
  public:
   std::unique_ptr<isa32::Riscv32gSlot> CreateRiscv32gSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa32::Riscv32gSlot>(state);
   }
 };
@@ -53,32 +53,32 @@
   using SlotEnum = isa32::SlotEnum;
   using OpcodeEnum = isa32::OpcodeEnum;
 
-  RiscV32Decoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV32Decoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV32Decoder() = delete;
   ~RiscV32Decoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa32::kOpcodeNames[index];
   }
 
   // Getter.
-  isa32::RiscV32GEncoding *riscv_encoding() const { return riscv_encoding_; }
+  isa32::RiscV32GEncoding* riscv_encoding() const { return riscv_encoding_; }
 
  private:
-  RiscVState *state_;
-  util::MemoryInterface *memory_;
+  RiscVState* state_;
+  util::MemoryInterface* memory_;
   std::unique_ptr<generic::ProgramError> decode_error_;
-  generic::DataBuffer *inst_db_;
-  isa32::RiscV32GEncoding *riscv_encoding_;
-  RV32IsaFactory *riscv_isa_factory_;
-  isa32::RiscV32GInstructionSet *riscv_isa_;
+  generic::DataBuffer* inst_db_;
+  isa32::RiscV32GEncoding* riscv_encoding_;
+  RV32IsaFactory* riscv_isa_factory_;
+  isa32::RiscV32GInstructionSet* riscv_isa_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv32_htif_semihost.cc b/riscv/riscv32_htif_semihost.cc
index 318d2a2..511e9fc 100644
--- a/riscv/riscv32_htif_semihost.cc
+++ b/riscv/riscv32_htif_semihost.cc
@@ -36,13 +36,13 @@
 using AddressRange = mpact::sim::util::MemoryWatcher::AddressRange;
 
 RiscV32HtifSemiHost::RiscV32HtifSemiHost(
-    util::MemoryWatcher *watcher, util::MemoryInterface *memory,
-    const SemiHostAddresses &magic_addresses)
+    util::MemoryWatcher* watcher, util::MemoryInterface* memory,
+    const SemiHostAddresses& magic_addresses)
     : RiscV32HtifSemiHost(watcher, memory, magic_addresses, nullptr, nullptr) {}
 
 RiscV32HtifSemiHost::RiscV32HtifSemiHost(
-    util::MemoryWatcher *watcher, util::MemoryInterface *memory,
-    const SemiHostAddresses &magic_addresses, HaltCallback halt_callback,
+    util::MemoryWatcher* watcher, util::MemoryInterface* memory,
+    const SemiHostAddresses& magic_addresses, HaltCallback halt_callback,
     ErrorCallback error_callback)
     : halt_callback_(std::move(halt_callback)),
       error_callback_(std::move(error_callback)),
@@ -66,7 +66,7 @@
 }
 
 void RiscV32HtifSemiHost::SetMagicAddresses(
-    const SemiHostAddresses &magic_addresses) {
+    const SemiHostAddresses& magic_addresses) {
   // Clear any previous store watchpoint. Ignore any error.
   (void)watcher_->ClearStoreWatchCallback(magic_addresses_.tohost_ready);
   magic_addresses_ = magic_addresses;
@@ -91,7 +91,7 @@
 
   // Read the value of the ready_db, if not 1, then the tohost location
   // does not contain data, and there's nothing to do.
-  auto *ready_db = db_factory_.Allocate<uint8_t>(1);
+  auto* ready_db = db_factory_.Allocate<uint8_t>(1);
   memory_->Load(magic_addresses_.tohost_ready, ready_db, nullptr, nullptr);
   if (ready_db->Get<uint8_t>(0) != 1) {
     ready_db->DecRef();
@@ -99,7 +99,7 @@
   }
 
   // Get the payload double word. Extract the command.
-  auto *payload_db = db_factory_.Allocate<uint64_t>(1);
+  auto* payload_db = db_factory_.Allocate<uint64_t>(1);
   memory_->Load(magic_addresses_.tohost, payload_db, nullptr, nullptr);
   uint64_t payload = payload_db->Get<uint64_t>(0);
   uint8_t device = payload >> 56;
@@ -117,7 +117,7 @@
   }
   // The payload contains a pointer to an 8 double word parameter block. Load
   // that block.
-  auto *parameter_db = db_factory_.Allocate<uint64_t>(8);
+  auto* parameter_db = db_factory_.Allocate<uint64_t>(8);
   memory_->Load(payload, parameter_db, nullptr, nullptr);
   auto parameter_span = parameter_db->Get<uint64_t>();
   int64_t return_value = 0;
@@ -133,10 +133,10 @@
       } else {
         dirfd = iter->second;
       }
-      auto *db = db_factory_.Allocate(parameter_span[3]);
+      auto* db = db_factory_.Allocate(parameter_span[3]);
       auto address = parameter_span[2];
       memory_->Load(address, db, nullptr, nullptr);
-      char *name = static_cast<char *>(db->raw_ptr());
+      char* name = static_cast<char*>(db->raw_ptr());
       return_value = openat(dirfd, name, parameter_span[4], parameter_span[5]);
       db->DecRef();
     } break;
@@ -163,10 +163,10 @@
       auto iter = fd_map_.find(parameter_span[1]);
       int fd = iter == fd_map_.end() ? -1 : iter->second;
       size_t len = static_cast<size_t>(parameter_span[3]);
-      auto *data_db = db_factory_.Allocate<uint8_t>(len);
+      auto* data_db = db_factory_.Allocate<uint8_t>(len);
       int res = read(fd, data_db->raw_ptr(), len);
       if (res > 0) {
-        generic::DataBuffer *db = nullptr;
+        generic::DataBuffer* db = nullptr;
         // Need to see if fewer bytes were read than there was space for. If so
         // need to use a different db for the store.
         if (res == len) {
@@ -185,7 +185,7 @@
     {
       auto iter = fd_map_.find(parameter_span[1]);
       int fd = iter == fd_map_.end() ? -1 : iter->second;
-      auto *data_db = db_factory_.Allocate<uint8_t>(parameter_span[3]);
+      auto* data_db = db_factory_.Allocate<uint8_t>(parameter_span[3]);
       memory_->Load(parameter_span[2], data_db, nullptr, nullptr);
       size_t len = static_cast<size_t>(parameter_span[3]);
       return_value = write(fd, data_db->raw_ptr(), len);
@@ -197,10 +197,10 @@
       int fd = iter == fd_map_.end() ? -1 : iter->second;
       size_t len = static_cast<size_t>(parameter_span[3]);
       off_t offset = static_cast<off_t>(parameter_span[4]);
-      auto *data_db = db_factory_.Allocate<uint8_t>(len);
+      auto* data_db = db_factory_.Allocate<uint8_t>(len);
       int res = pread(fd, data_db->raw_ptr(), len, offset);
       if (res > 0) {
-        generic::DataBuffer *db = nullptr;
+        generic::DataBuffer* db = nullptr;
         // Need to see if fewer bytes were read than there was space for. If so
         // need to use a different db for the store.
         if (res == len) {
@@ -219,7 +219,7 @@
     {
       auto iter = fd_map_.find(parameter_span[1]);
       int fd = iter == fd_map_.end() ? -1 : iter->second;
-      auto *data_db = db_factory_.Allocate<uint8_t>(parameter_span[3]);
+      auto* data_db = db_factory_.Allocate<uint8_t>(parameter_span[3]);
       memory_->Load(parameter_span[2], data_db, nullptr, nullptr);
       size_t len = static_cast<size_t>(parameter_span[3]);
       off_t offset = static_cast<off_t>(parameter_span[4]);
diff --git a/riscv/riscv32_htif_semihost.h b/riscv/riscv32_htif_semihost.h
index 910580f..59430a2 100644
--- a/riscv/riscv32_htif_semihost.h
+++ b/riscv/riscv32_htif_semihost.h
@@ -45,19 +45,19 @@
     uint64_t fromhost;
   };
 
-  RiscV32HtifSemiHost(util::MemoryWatcher *watcher,
-                      util::MemoryInterface *memory,
-                      const SemiHostAddresses &magic_addresses);
+  RiscV32HtifSemiHost(util::MemoryWatcher* watcher,
+                      util::MemoryInterface* memory,
+                      const SemiHostAddresses& magic_addresses);
 
-  RiscV32HtifSemiHost(util::MemoryWatcher *watcher,
-                      util::MemoryInterface *memory,
-                      const SemiHostAddresses &magic_addresses,
+  RiscV32HtifSemiHost(util::MemoryWatcher* watcher,
+                      util::MemoryInterface* memory,
+                      const SemiHostAddresses& magic_addresses,
                       HaltCallback halt_callback, ErrorCallback error_callback);
 
   ~RiscV32HtifSemiHost();
 
   // Set magic addresses.
-  void SetMagicAddresses(const SemiHostAddresses &magic_addresses);
+  void SetMagicAddresses(const SemiHostAddresses& magic_addresses);
   // Set the halt callback.
   void SetHaltCallback(HaltCallback halt_callback);
   // Set the error callback.
@@ -71,9 +71,9 @@
   HaltCallback halt_callback_;
   ErrorCallback error_callback_;
   // Memory watcher.
-  util::MemoryWatcher *watcher_;
+  util::MemoryWatcher* watcher_;
   // Memory interface (bypassing the watchpoints).
-  util::MemoryInterface *memory_;
+  util::MemoryInterface* memory_;
   SemiHostAddresses magic_addresses_;
   // File descriptor map.
   absl::flat_hash_map<int, int> fd_map_;
diff --git a/riscv/riscv32_renode.cc b/riscv/riscv32_renode.cc
index 421dd3a..19f8b1e 100644
--- a/riscv/riscv32_renode.cc
+++ b/riscv/riscv32_renode.cc
@@ -7,10 +7,10 @@
 #include "riscv/riscv_renode.h"
 #include "riscv/riscv_state.h"
 
-::mpact::sim::util::renode::RenodeDebugInterface *CreateMpactSim(
+::mpact::sim::util::renode::RenodeDebugInterface* CreateMpactSim(
     std::string name, std::string cpu_type,
-    ::mpact::sim::util::MemoryInterface *renode_sysbus) {
-  auto *top = new ::mpact::sim::riscv::RiscVRenode(
+    ::mpact::sim::util::MemoryInterface* renode_sysbus) {
+  auto* top = new ::mpact::sim::riscv::RiscVRenode(
       name, renode_sysbus, ::mpact::sim::riscv::RiscVXlen ::RV32);
   return top;
 }
diff --git a/riscv/riscv32_renode.h b/riscv/riscv32_renode.h
index b068ae7..9bdc731 100644
--- a/riscv/riscv32_renode.h
+++ b/riscv/riscv32_renode.h
@@ -9,8 +9,8 @@
 // This file defines the factory method for creating a RiscV 32 simulator for
 // use with ReNode.
 
-extern ::mpact::sim::util::renode::RenodeDebugInterface *CreateMpactSim(
+extern ::mpact::sim::util::renode::RenodeDebugInterface* CreateMpactSim(
     std::string name, std::string cpu_type,
-    ::mpact::sim::util::MemoryInterface *renode_sysbus);
+    ::mpact::sim::util::MemoryInterface* renode_sysbus);
 
 #endif  // THIRD_PARTY_MPACT_RISCV_RISCV32_RENODE_H_
diff --git a/riscv/riscv32g_bitmanip_decoder.cc b/riscv/riscv32g_bitmanip_decoder.cc
index 2644ad5..3c2de3f 100644
--- a/riscv/riscv32g_bitmanip_decoder.cc
+++ b/riscv/riscv32g_bitmanip_decoder.cc
@@ -32,8 +32,8 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV32GBitmanipDecoder::RiscV32GBitmanipDecoder(RiscVState *state,
-                                                 util::MemoryInterface *memory)
+RiscV32GBitmanipDecoder::RiscV32GBitmanipDecoder(RiscVState* state,
+                                                 util::MemoryInterface* memory)
     : state_(state), memory_(memory) {
   // Need a data buffer to load instructions from memory. Allocate a single
   // buffer that can be reused for each instruction word.
@@ -53,17 +53,17 @@
   inst_db_->DecRef();
 }
 
-generic::Instruction *RiscV32GBitmanipDecoder::DecodeInstruction(
+generic::Instruction* RiscV32GBitmanipDecoder::DecodeInstruction(
     uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa32gzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAddressMisaligned,
                    inst->address() ^ 0x1, inst);
@@ -74,12 +74,12 @@
   // If the address is greater than the max address, return an instruction
   // that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa32gzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAccessFault, inst->address(),
                    nullptr);
@@ -94,7 +94,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_);
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_);
   return instruction;
 }
 
diff --git a/riscv/riscv32g_bitmanip_decoder.h b/riscv/riscv32g_bitmanip_decoder.h
index 1205872..7c66ab1 100644
--- a/riscv/riscv32g_bitmanip_decoder.h
+++ b/riscv/riscv32g_bitmanip_decoder.h
@@ -41,7 +41,7 @@
 class RV32GZBIsaFactory : public isa32gzb::RiscV32GZBInstructionSetFactory {
  public:
   std::unique_ptr<isa32gzb::Riscv32gzbSlot> CreateRiscv32gzbSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa32gzb::Riscv32gzbSlot>(state);
   }
 };
@@ -53,33 +53,33 @@
   using SlotEnum = isa32gzb::SlotEnum;
   using OpcodeEnum = isa32gzb::OpcodeEnum;
 
-  RiscV32GBitmanipDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV32GBitmanipDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV32GBitmanipDecoder() = delete;
   ~RiscV32GBitmanipDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa32gzb::kOpcodeNames[index];
   }
 
   // Getter.
-  isa32gzb::RiscV32GZBEncoding *riscv_encoding() const {
+  isa32gzb::RiscV32GZBEncoding* riscv_encoding() const {
     return riscv_encoding_;
   }
 
  private:
-  RiscVState *state_;
-  util::MemoryInterface *memory_;
-  generic::DataBuffer *inst_db_;
-  isa32gzb::RiscV32GZBEncoding *riscv_encoding_;
-  RV32GZBIsaFactory *riscv_isa_factory_;
-  isa32gzb::RiscV32GZBInstructionSet *riscv_isa_;
+  RiscVState* state_;
+  util::MemoryInterface* memory_;
+  generic::DataBuffer* inst_db_;
+  isa32gzb::RiscV32GZBEncoding* riscv_encoding_;
+  RV32GZBIsaFactory* riscv_isa_factory_;
+  isa32gzb::RiscV32GZBInstructionSet* riscv_isa_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv32g_encoding.cc b/riscv/riscv32g_encoding.cc
index 34b155f..63a9a55 100644
--- a/riscv/riscv32g_encoding.cc
+++ b/riscv/riscv32g_encoding.cc
@@ -39,51 +39,51 @@
 
 // Generic helper functions to create register operands.
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(RiscVState *state,
+inline DestinationOperandInterface* GetRegisterDestinationOp(RiscVState* state,
                                                              std::string name,
                                                              int latency) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency);
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+inline DestinationOperandInterface* GetRegisterDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency, op_name);
 }
 
 template <typename T>
-inline DestinationOperandInterface *GetCSRSetBitsDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
+inline DestinationOperandInterface* GetCSRSetBitsDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
   auto result = state->csr_set()->GetCsr(name);
   if (!result.ok()) {
     LOG(ERROR) << "No such CSR '" << name << "'";
     return nullptr;
   }
-  auto *csr = result.value();
-  auto *op = csr->CreateSetDestinationOperand(latency, op_name);
+  auto* csr = result.value();
+  auto* op = csr->CreateSetDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand();
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand();
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name,
                                                    std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand(op_name);
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand(op_name);
   return op;
 }
 
-RiscV32GEncoding::RiscV32GEncoding(RiscVState *state) : state_(state) {
+RiscV32GEncoding::RiscV32GEncoding(RiscVState* state) : state_(state) {
   InitializeSourceOperandGetters();
   InitializeDestinationOperandGetters();
   InitializeSimpleResourceGetters();
@@ -98,7 +98,7 @@
   // Source operand getters.
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kAAq),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding::inst32_format::ExtractAq(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -106,7 +106,7 @@
                      }));
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kARl),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding::inst32_format::ExtractRl(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -181,7 +181,7 @@
         if (!res.ok()) {
           return new generic::ImmediateOperand<uint32_t>(csr_indx);
         }
-        auto *csr = res.value();
+        auto* csr = res.value();
         return new generic::ImmediateOperand<uint32_t>(csr_indx, csr->name());
       }));
   source_op_getters_.insert(
@@ -311,8 +311,7 @@
             encoding::inst32_format::ExtractPred(inst_word_));
       }));
   source_op_getters_.insert(std::make_pair(
-      static_cast<int>(SourceOpEnum::kRd),
-      [this]() -> SourceOperandInterface * {
+      static_cast<int>(SourceOpEnum::kRd), [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRd(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -320,34 +319,33 @@
             state_, absl::StrCat(RiscVState::kXregPrefix, num),
             xreg_alias_[num]);
       }));
-  source_op_getters_.insert(
-      std::make_pair(static_cast<int>(SourceOpEnum::kRm),
-                     [this]() -> SourceOperandInterface * {
-                       uint32_t rm = (inst_word_ >> 12) & 0x7;
-                       switch (rm) {
-                         case 0:
-                           return new generic::IntLiteralOperand<0>();
-                         case 1:
-                           return new generic::IntLiteralOperand<1>();
-                         case 2:
-                           return new generic::IntLiteralOperand<2>();
-                         case 3:
-                           return new generic::IntLiteralOperand<3>();
-                         case 4:
-                           return new generic::IntLiteralOperand<4>();
-                         case 5:
-                           return new generic::IntLiteralOperand<5>();
-                         case 6:
-                           return new generic::IntLiteralOperand<6>();
-                         case 7:
-                           return new generic::IntLiteralOperand<7>();
-                         default:
-                           return nullptr;
-                       }
-                     }));
+  source_op_getters_.insert(std::make_pair(
+      static_cast<int>(SourceOpEnum::kRm), [this]() -> SourceOperandInterface* {
+        uint32_t rm = (inst_word_ >> 12) & 0x7;
+        switch (rm) {
+          case 0:
+            return new generic::IntLiteralOperand<0>();
+          case 1:
+            return new generic::IntLiteralOperand<1>();
+          case 2:
+            return new generic::IntLiteralOperand<2>();
+          case 3:
+            return new generic::IntLiteralOperand<3>();
+          case 4:
+            return new generic::IntLiteralOperand<4>();
+          case 5:
+            return new generic::IntLiteralOperand<5>();
+          case 6:
+            return new generic::IntLiteralOperand<6>();
+          case 7:
+            return new generic::IntLiteralOperand<7>();
+          default:
+            return nullptr;
+        }
+      }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs1),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRs1(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -357,7 +355,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs2),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRs2(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -444,7 +442,7 @@
       }));
   dest_op_getters_.insert(
       std::make_pair(static_cast<int>(DestOpEnum::kRd),
-                     [this](int latency) -> DestinationOperandInterface * {
+                     [this](int latency) -> DestinationOperandInterface* {
                        int num = encoding::r_type::ExtractRd(inst_word_);
                        if (num == 0) {
                          return GetRegisterDestinationOp<RV32Register>(
@@ -499,7 +497,7 @@
                      [](int begin, int end) { return nullptr; }));
 }
 
-ResourceOperandInterface *RiscV32GEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV32GEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -516,31 +514,31 @@
       static_cast<int>(SimpleResourceEnum::kNone), []() { return nullptr; }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3frd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3frs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -548,7 +546,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -556,7 +554,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -564,19 +562,19 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCdrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCfrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -584,7 +582,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -592,65 +590,65 @@
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kCsr),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("csr");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kNextPc),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("next_pc");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -658,7 +656,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -666,7 +664,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -675,23 +673,23 @@
   // X0 is constant 0, so no resource issue.
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX0),
-                     []() -> generic::SimpleResource * { return nullptr; }));
+                     []() -> generic::SimpleResource* { return nullptr; }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX1),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x1");
                      }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX2),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x2");
                      }));
 }
 
-ResourceOperandInterface *RiscV32GEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV32GEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -699,18 +697,18 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
+  auto* op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV32GEncoding::GetDestination(
+DestinationOperandInterface* RiscV32GEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -724,7 +722,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV32GEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV32GEncoding::GetSource(SlotEnum, int,
                                                     OpcodeEnum opcode,
                                                     SourceOpEnum source_op,
                                                     int source_no) {
diff --git a/riscv/riscv32g_encoding.h b/riscv/riscv32g_encoding.h
index 920e84e..0b2e05e 100644
--- a/riscv/riscv32g_encoding.h
+++ b/riscv/riscv32g_encoding.h
@@ -52,15 +52,15 @@
   static constexpr int kParseGroup16Size = 32;
 
   using SourceOpGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface*()>>;
   using DestOpGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<DestinationOperandInterface *(int)>>;
+      int, absl::AnyInvocable<DestinationOperandInterface*(int)>>;
   using SimpleResourceGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource*()>>;
   using ComplexResourceGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<ResourceOperandInterface *(int, int)>>;
+      int, absl::AnyInvocable<ResourceOperandInterface*(int, int)>>;
 
-  explicit RiscV32GEncoding(RiscVState *state);
+  explicit RiscV32GEncoding(RiscVState* state);
   ~RiscV32GEncoding() override;
 
   // Parses an instruction and determines the opcode.
@@ -73,7 +73,7 @@
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
 
   // There is no predicate, so return nullptr.
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
@@ -85,22 +85,22 @@
   // where the resource itself is a register bank, and the argument specifies
   // which register (or more precisely) which encoding "field" specifies the
   // register number.
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
   // The following method returns a source operand that corresponds to the
   // particular operand field.
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
   // The following method returns a destination operand that corresponds to the
   // particular operand field.
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
   // This method returns latency for any destination operand for which the
@@ -111,14 +111,14 @@
   }
 
   // Getter.
-  SimpleResourcePool *resource_pool() const { return resource_pool_; }
+  SimpleResourcePool* resource_pool() const { return resource_pool_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
@@ -141,11 +141,11 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
-  SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  SimpleResourcePool *resource_pool_ = nullptr;
+  SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace isa32
diff --git a/riscv/riscv32g_vec_decoder.cc b/riscv/riscv32g_vec_decoder.cc
index b3824f5..49b0da8 100644
--- a/riscv/riscv32g_vec_decoder.cc
+++ b/riscv/riscv32g_vec_decoder.cc
@@ -23,8 +23,8 @@
 namespace sim {
 namespace riscv {
 
-RiscV32GVecDecoder::RiscV32GVecDecoder(RiscVState *state,
-                                       util::MemoryInterface *memory)
+RiscV32GVecDecoder::RiscV32GVecDecoder(RiscVState* state,
+                                       util::MemoryInterface* memory)
     : state_(state), memory_(memory) {
   // Get a handle to the internal error in the program error controller.
   decode_error_ = state->program_error_controller()->GetProgramError(
@@ -49,15 +49,15 @@
   delete riscv_encoding_;
 }
 
-generic::Instruction *RiscV32GVecDecoder::DecodeInstruction(uint64_t address) {
+generic::Instruction* RiscV32GVecDecoder::DecodeInstruction(uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that generates an internal simulator error when
   // executed.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     std::string error =
         absl::StrCat(absl::Hex(address), ": unaligned instruction address");
-    inst->set_semantic_function([error, this](generic::Instruction *inst) {
+    inst->set_semantic_function([error, this](generic::Instruction* inst) {
       decode_error_->Raise(error);
     });
     inst->set_size(1);
@@ -71,7 +71,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_);
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_);
   return instruction;
 }
 
diff --git a/riscv/riscv32g_vec_decoder.h b/riscv/riscv32g_vec_decoder.h
index d1eae1c..f75ede6 100644
--- a/riscv/riscv32g_vec_decoder.h
+++ b/riscv/riscv32g_vec_decoder.h
@@ -41,7 +41,7 @@
 class RV32GVIsaFactory : public isa32v::RiscV32GVInstructionSetFactory {
  public:
   std::unique_ptr<isa32v::Riscv32gvSlot> CreateRiscv32gvSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa32v::Riscv32gvSlot>(state);
   }
 };
@@ -53,35 +53,35 @@
   using SlotEnum = isa32v::SlotEnum;
   using OpcodeEnum = isa32v::OpcodeEnum;
 
-  RiscV32GVecDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV32GVecDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV32GVecDecoder() = delete;
   ~RiscV32GVecDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
 
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa32v::kOpcodeNames[index];
   }
 
   // Getter.
-  isa32v::RiscV32GVecEncoding *riscv_encoding() const {
+  isa32v::RiscV32GVecEncoding* riscv_encoding() const {
     return riscv_encoding_;
   }
 
  private:
-  RiscVState *state_;
-  util::MemoryInterface *memory_;
+  RiscVState* state_;
+  util::MemoryInterface* memory_;
   std::unique_ptr<generic::ProgramError> decode_error_;
-  generic::DataBuffer *inst_db_;
-  isa32v::RiscV32GVecEncoding *riscv_encoding_;
-  RV32GVIsaFactory *riscv_isa_factory_;
-  isa32v::RiscV32GVInstructionSet *riscv_isa_;
+  generic::DataBuffer* inst_db_;
+  isa32v::RiscV32GVecEncoding* riscv_encoding_;
+  RV32GVIsaFactory* riscv_isa_factory_;
+  isa32v::RiscV32GVInstructionSet* riscv_isa_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv32g_vec_encoding.cc b/riscv/riscv32g_vec_encoding.cc
index 88ba701..679fa5b 100644
--- a/riscv/riscv32g_vec_encoding.cc
+++ b/riscv/riscv32g_vec_encoding.cc
@@ -39,15 +39,15 @@
 namespace isa32v {
 
 template <typename M, typename E, typename G>
-inline void Insert(M &map, E entry, G getter) {
+inline void Insert(M& map, E entry, G getter) {
   map.insert(std::make_pair(static_cast<int>(entry), getter));
 }
 
 constexpr int kNumRegTable[8] = {8, 1, 2, 1, 4, 1, 2, 1};
 
 template <typename RegType>
-inline void GetVRegGroup(RiscVState *state, int reg_num,
-                         std::vector<generic::RegisterBase *> *vreg_group) {
+inline void GetVRegGroup(RiscVState* state, int reg_num,
+                         std::vector<generic::RegisterBase*>* vreg_group) {
   // The number of registers in a vector register group depends on the register
   // index: 0, 8, 16, 24 each have 8 registers, 4, 12, 20, 28 each have 4,
   // 2, 6, 10, 14, 18, 22, 26, 30 each have two, and all odd numbered register
@@ -59,104 +59,104 @@
   }
 }
 template <typename RegType>
-inline SourceOperandInterface *GetVectorRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorRegisterSourceOp(RiscVState* state,
                                                          int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+inline DestinationOperandInterface* GetVectorRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetVectorMaskRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorMaskRegisterSourceOp(RiscVState* state,
                                                              int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorMaskRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
+inline DestinationOperandInterface* GetVectorMaskRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
 
 // Generic helper functions to create register operands.
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(RiscVState *state,
+inline DestinationOperandInterface* GetRegisterDestinationOp(RiscVState* state,
                                                              std::string name,
                                                              int latency) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency);
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+inline DestinationOperandInterface* GetRegisterDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency, op_name);
 }
 
 template <typename T>
-inline DestinationOperandInterface *GetCSRSetBitsDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
+inline DestinationOperandInterface* GetCSRSetBitsDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
   auto result = state->csr_set()->GetCsr(name);
   if (!result.ok()) {
     LOG(ERROR) << "No such CSR '" << name << "'";
     return nullptr;
   }
-  auto *csr = result.value();
-  auto *op = csr->CreateSetDestinationOperand(latency, op_name);
+  auto* csr = result.value();
+  auto* op = csr->CreateSetDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand();
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand();
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name,
                                                    std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand(op_name);
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand(op_name);
   return op;
 }
 
-RiscV32GVecEncoding::RiscV32GVecEncoding(RiscVState *state) : state_(state) {
+RiscV32GVecEncoding::RiscV32GVecEncoding(RiscVState* state) : state_(state) {
   InitializeSourceOperandGetters();
   InitializeDestinationOperandGetters();
   InitializeSimpleResourceGetters();
@@ -171,12 +171,12 @@
 
 void RiscV32GVecEncoding::InitializeVectorSourceOperandGetters() {
   Insert(source_op_getters_, SourceOpEnum::kVd,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding::v_arith::ExtractVd(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVmask,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto vm = encoding::v_arith::ExtractVm(inst_word_);
            if (vm == 1) {
              // Unmasked, return the True mask.
@@ -186,71 +186,71 @@
            return GetVectorMaskRegisterSourceOp<RVVectorRegister>(state_, 0);
          });
   Insert(source_op_getters_, SourceOpEnum::kVmaskTrue,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            return new RV32VectorTrueOperand(state_);
          });
   Insert(source_op_getters_, SourceOpEnum::kVs1,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding::v_arith::ExtractVs1(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVs2,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding::v_arith::ExtractVs2(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVs3,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding::v_mem::ExtractVs3(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kSimm5,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding::inst32_format::ExtractSimm5(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kUimm5,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding::inst32_format::ExtractUimm5(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kZimm10,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding::inst32_format::ExtractZimm10(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kZimm11,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding::inst32_format::ExtractZimm11(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst1,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(1);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst2,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(2);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst4,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(4);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst8,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(8);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kNf,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num_fields = encoding::v_mem::ExtractNf(inst_word_);
            return new generic::ImmediateOperand<uint8_t>(
                num_fields, absl::StrCat(num_fields + 1));
@@ -259,7 +259,7 @@
 
 void RiscV32GVecEncoding::InitializeVectorDestinationOperandGetters() {
   Insert(dest_op_getters_, DestOpEnum::kVd,
-         [this](int latency) -> DestinationOperandInterface * {
+         [this](int latency) -> DestinationOperandInterface* {
            auto num = encoding::v_arith::ExtractVd(inst_word_);
            return GetVectorRegisterDestinationOp<RVVectorRegister>(
                state_, latency, num);
@@ -270,7 +270,7 @@
   // Source operand getters.
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kAAq),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding::inst32_format::ExtractAq(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -278,7 +278,7 @@
                      }));
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kARl),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding::inst32_format::ExtractRl(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -353,7 +353,7 @@
         if (!res.ok()) {
           return new generic::ImmediateOperand<uint32_t>(csr_indx);
         }
-        auto *csr = res.value();
+        auto* csr = res.value();
         return new generic::ImmediateOperand<uint32_t>(csr_indx, csr->name());
       }));
   source_op_getters_.insert(
@@ -488,34 +488,32 @@
         return new generic::ImmediateOperand<uint32_t>(
             encoding::fence::ExtractPred(inst_word_));
       }));
-  source_op_getters_.insert(
-      std::make_pair(static_cast<int>(SourceOpEnum::kRm),
-                     [this]() -> SourceOperandInterface * {
-                       uint32_t rm = (inst_word_ >> 12) & 0x7;
-                       switch (rm) {
-                         case 0:
-                           return new generic::IntLiteralOperand<0>();
-                         case 1:
-                           return new generic::IntLiteralOperand<1>();
-                         case 2:
-                           return new generic::IntLiteralOperand<2>();
-                         case 3:
-                           return new generic::IntLiteralOperand<3>();
-                         case 4:
-                           return new generic::IntLiteralOperand<4>();
-                         case 5:
-                           return new generic::IntLiteralOperand<5>();
-                         case 6:
-                           return new generic::IntLiteralOperand<6>();
-                         case 7:
-                           return new generic::IntLiteralOperand<7>();
-                         default:
-                           return nullptr;
-                       }
-                     }));
   source_op_getters_.insert(std::make_pair(
-      static_cast<int>(SourceOpEnum::kRd),
-      [this]() -> SourceOperandInterface * {
+      static_cast<int>(SourceOpEnum::kRm), [this]() -> SourceOperandInterface* {
+        uint32_t rm = (inst_word_ >> 12) & 0x7;
+        switch (rm) {
+          case 0:
+            return new generic::IntLiteralOperand<0>();
+          case 1:
+            return new generic::IntLiteralOperand<1>();
+          case 2:
+            return new generic::IntLiteralOperand<2>();
+          case 3:
+            return new generic::IntLiteralOperand<3>();
+          case 4:
+            return new generic::IntLiteralOperand<4>();
+          case 5:
+            return new generic::IntLiteralOperand<5>();
+          case 6:
+            return new generic::IntLiteralOperand<6>();
+          case 7:
+            return new generic::IntLiteralOperand<7>();
+          default:
+            return nullptr;
+        }
+      }));
+  source_op_getters_.insert(std::make_pair(
+      static_cast<int>(SourceOpEnum::kRd), [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRd(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -525,7 +523,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs1),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRs1(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -535,7 +533,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs2),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding::r_type::ExtractRs2(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -559,7 +557,7 @@
             encoding::inst32_format::ExtractUImm(inst_word_));
       }));
   Insert(source_op_getters_, SourceOpEnum::kVm,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto vm = encoding::v_arith::ExtractVm(inst_word_);
            return new generic::ImmediateOperand<bool>(
                vm, absl::StrCat("vm.", vm ? "t" : "f"));
@@ -635,7 +633,7 @@
       }));
   dest_op_getters_.insert(
       std::make_pair(static_cast<int>(DestOpEnum::kRd),
-                     [this](int latency) -> DestinationOperandInterface * {
+                     [this](int latency) -> DestinationOperandInterface* {
                        int num = encoding::r_type::ExtractRd(inst_word_);
                        if (num == 0) {
                          return GetRegisterDestinationOp<RV32Register>(
@@ -690,7 +688,7 @@
                      [](int begin, int end) { return nullptr; }));
 }
 
-ResourceOperandInterface *RiscV32GVecEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV32GVecEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -707,31 +705,31 @@
       static_cast<int>(SimpleResourceEnum::kNone), []() { return nullptr; }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3frd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3frs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -739,7 +737,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractClRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -747,7 +745,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding::inst16_format::ExtractCsRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -755,19 +753,19 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCdrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCfrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -775,7 +773,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::c_r::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -783,65 +781,65 @@
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kCsr),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("csr");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kNextPc),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("next_pc");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -849,7 +847,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -857,7 +855,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding::a_type::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -866,23 +864,23 @@
   // X0 is constant 0, so no resource issue.
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX0),
-                     []() -> generic::SimpleResource * { return nullptr; }));
+                     []() -> generic::SimpleResource* { return nullptr; }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX1),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x1");
                      }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX2),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x2");
                      }));
 }
 
-ResourceOperandInterface *RiscV32GVecEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV32GVecEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -890,19 +888,19 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new generic::SimpleResourceOperand(resource_set, end,
+  auto* op = new generic::SimpleResourceOperand(resource_set, end,
                                                 resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV32GVecEncoding::GetDestination(
+DestinationOperandInterface* RiscV32GVecEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -916,7 +914,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV32GVecEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV32GVecEncoding::GetSource(SlotEnum, int,
                                                        OpcodeEnum opcode,
                                                        SourceOpEnum source_op,
                                                        int source_no) {
diff --git a/riscv/riscv32g_vec_encoding.h b/riscv/riscv32g_vec_encoding.h
index 196e8a1..e6d820c 100644
--- a/riscv/riscv32g_vec_encoding.h
+++ b/riscv/riscv32g_vec_encoding.h
@@ -35,18 +35,18 @@
 class RiscV32GVecEncoding : public RiscV32GVEncodingBase {
  public:
   using SourceOpGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface*()>>;
   using DestOpGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<DestinationOperandInterface *(int)>>;
+      int, absl::AnyInvocable<DestinationOperandInterface*(int)>>;
   using SimpleResourceGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource*()>>;
   using ComplexResourceGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<ResourceOperandInterface *(int, int)>>;
+      int, absl::AnyInvocable<ResourceOperandInterface*(int, int)>>;
 
   static constexpr int kParseGroup32Size = 32;
   static constexpr int kParseGroup16Size = 32;
 
-  explicit RiscV32GVecEncoding(RiscVState *state);
+  explicit RiscV32GVecEncoding(RiscVState* state);
   ~RiscV32GVecEncoding() override;
 
   // Parses an instruction and determines the opcode.
@@ -59,7 +59,7 @@
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
 
   // There is no predicate, so return nullptr.
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
@@ -71,22 +71,22 @@
   // where the resource itself is a register bank, and the argument specifies
   // which register (or more precisely) which encoding "field" specifies the
   // register number.
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
   // The following method returns a source operand that corresponds to the
   // particular operand field.
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
   // The following method returns a destination operand that corresponds to the
   // particular operand field.
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -98,12 +98,12 @@
   }
 
   // Getter.
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
@@ -128,11 +128,11 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace isa32v
diff --git a/riscv/riscv32gzb_encoding.cc b/riscv/riscv32gzb_encoding.cc
index ed26f29..fa29cfa 100644
--- a/riscv/riscv32gzb_encoding.cc
+++ b/riscv/riscv32gzb_encoding.cc
@@ -37,7 +37,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
-RiscV32GZBEncoding::RiscV32GZBEncoding(RiscVState *state)
+RiscV32GZBEncoding::RiscV32GZBEncoding(RiscVState* state)
     : state_(state),
       inst_word_(0),
       opcode_(OpcodeEnum::kNone),
@@ -105,7 +105,7 @@
   format_ = format;
 }
 
-ResourceOperandInterface *RiscV32GZBEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV32GZBEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -117,10 +117,10 @@
   return (iter->second)(begin, end);
 }
 
-ResourceOperandInterface *RiscV32GZBEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV32GZBEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -128,19 +128,19 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new generic::SimpleResourceOperand(resource_set, end,
+  auto* op = new generic::SimpleResourceOperand(resource_set, end,
                                                 resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV32GZBEncoding::GetDestination(
+DestinationOperandInterface* RiscV32GZBEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -154,7 +154,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV32GZBEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV32GZBEncoding::GetSource(SlotEnum, int,
                                                       OpcodeEnum opcode,
                                                       SourceOpEnum source_op,
                                                       int source_no) {
diff --git a/riscv/riscv32gzb_encoding.h b/riscv/riscv32gzb_encoding.h
index 96a1104..2c5f17d 100644
--- a/riscv/riscv32gzb_encoding.h
+++ b/riscv/riscv32gzb_encoding.h
@@ -38,30 +38,30 @@
 class RiscV32GZBEncoding : public RiscV32GZBEncodingBase,
                            public RiscVEncodingCommon {
  public:
-  explicit RiscV32GZBEncoding(RiscVState *state);
+  explicit RiscV32GZBEncoding(RiscVState* state);
   ~RiscV32GZBEncoding() override;
 
   void ParseInstruction(uint32_t inst_word);
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -70,25 +70,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -96,8 +96,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace mpact::sim::riscv::isa32gzb
diff --git a/riscv/riscv32gzb_vec_decoder.cc b/riscv/riscv32gzb_vec_decoder.cc
index cdef792..3318637 100644
--- a/riscv/riscv32gzb_vec_decoder.cc
+++ b/riscv/riscv32gzb_vec_decoder.cc
@@ -34,8 +34,8 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV32GZBVecDecoder::RiscV32GZBVecDecoder(RiscVState *state,
-                                           util::MemoryInterface *memory)
+RiscV32GZBVecDecoder::RiscV32GZBVecDecoder(RiscVState* state,
+                                           util::MemoryInterface* memory)
     : state_(state),
       memory_(memory),
       inst_db_(state_->db_factory()->Allocate<uint32_t>(1)) {
@@ -55,17 +55,17 @@
 
 RiscV32GZBVecDecoder::~RiscV32GZBVecDecoder() { inst_db_->DecRef(); }
 
-generic::Instruction *RiscV32GZBVecDecoder::DecodeInstruction(
+generic::Instruction* RiscV32GZBVecDecoder::DecodeInstruction(
     uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa32gvzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAddressMisaligned, address ^ 0x1,
                    inst);
@@ -76,12 +76,12 @@
   // If the address is greater than the max address, return an instruction
   // object that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa32gvzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAccessFault, address, nullptr);
     });
@@ -95,7 +95,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
   return instruction;
 }
 
diff --git a/riscv/riscv32gzb_vec_decoder.h b/riscv/riscv32gzb_vec_decoder.h
index 4ecb035..b5cc9e9 100644
--- a/riscv/riscv32gzb_vec_decoder.h
+++ b/riscv/riscv32gzb_vec_decoder.h
@@ -41,7 +41,7 @@
 class RV32GVZBIsaFactory : public isa32gvzb::RiscV32GVZBInstructionSetFactory {
  public:
   std::unique_ptr<isa32gvzb::Riscv32gvzbSlot> CreateRiscv32gvzbSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa32gvzb::Riscv32gvzbSlot>(state);
   }
 };
@@ -54,28 +54,28 @@
   using SlotEnum = isa32gvzb::SlotEnum;
   using OpcodeEnum = isa32gvzb::OpcodeEnum;
 
-  RiscV32GZBVecDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV32GZBVecDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV32GZBVecDecoder() = delete;
   ~RiscV32GZBVecDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa32gvzb::kOpcodeNames[index];
   }
 
  private:
-  RiscVState *const state_;
-  util::MemoryInterface *const memory_;
+  RiscVState* const state_;
+  util::MemoryInterface* const memory_;
 
   // Buffer used to load instructions from memory. Re-used for each instruction
   // word.
-  generic::DataBuffer *const inst_db_;
+  generic::DataBuffer* const inst_db_;
 
   std::unique_ptr<generic::ProgramError> decode_error_;
   std::unique_ptr<isa32gvzb::RiscV32GZBVecEncoding> riscv_encoding_;
diff --git a/riscv/riscv32gzb_vec_encoding.cc b/riscv/riscv32gzb_vec_encoding.cc
index ea62791..99b3b35 100644
--- a/riscv/riscv32gzb_vec_encoding.cc
+++ b/riscv/riscv32gzb_vec_encoding.cc
@@ -37,7 +37,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
-RiscV32GZBVecEncoding::RiscV32GZBVecEncoding(RiscVState *state)
+RiscV32GZBVecEncoding::RiscV32GZBVecEncoding(RiscVState* state)
     : state_(state),
       inst_word_(0),
       opcode_(OpcodeEnum::kNone),
@@ -114,7 +114,7 @@
   format_ = format;
 }
 
-ResourceOperandInterface *RiscV32GZBVecEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV32GZBVecEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -126,10 +126,10 @@
   return (iter->second)(begin, end);
 }
 
-ResourceOperandInterface *RiscV32GZBVecEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV32GZBVecEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -137,19 +137,19 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new generic::SimpleResourceOperand(resource_set, end,
+  auto* op = new generic::SimpleResourceOperand(resource_set, end,
                                                 resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV32GZBVecEncoding::GetDestination(
+DestinationOperandInterface* RiscV32GZBVecEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -163,7 +163,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV32GZBVecEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV32GZBVecEncoding::GetSource(SlotEnum, int,
                                                          OpcodeEnum opcode,
                                                          SourceOpEnum source_op,
                                                          int source_no) {
diff --git a/riscv/riscv32gzb_vec_encoding.h b/riscv/riscv32gzb_vec_encoding.h
index c166534..becfe0d 100644
--- a/riscv/riscv32gzb_vec_encoding.h
+++ b/riscv/riscv32gzb_vec_encoding.h
@@ -37,30 +37,30 @@
 class RiscV32GZBVecEncoding : public RiscV32GVZBEncodingBase,
                               public RiscVEncodingCommon {
  public:
-  explicit RiscV32GZBVecEncoding(RiscVState *state);
+  explicit RiscV32GZBVecEncoding(RiscVState* state);
   ~RiscV32GZBVecEncoding() override;
 
   void ParseInstruction(uint32_t inst_word);
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -69,25 +69,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -95,8 +95,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace mpact::sim::riscv::isa32gvzb
diff --git a/riscv/riscv64_decoder.cc b/riscv/riscv64_decoder.cc
index eb2b8dd..39da434 100644
--- a/riscv/riscv64_decoder.cc
+++ b/riscv/riscv64_decoder.cc
@@ -33,10 +33,10 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV64Decoder::RiscV64Decoder(RiscVState *state, util::MemoryInterface *memory)
+RiscV64Decoder::RiscV64Decoder(RiscVState* state, util::MemoryInterface* memory)
     : RiscV64Decoder(state, memory, /*use_abi_names*/ true) {}
 
-RiscV64Decoder::RiscV64Decoder(RiscVState *state, util::MemoryInterface *memory,
+RiscV64Decoder::RiscV64Decoder(RiscVState* state, util::MemoryInterface* memory,
                                bool use_abi_names)
     : state_(state), memory_(memory) {
   // Get a handle to the internal error in the program error controller.
@@ -62,16 +62,16 @@
   delete riscv_encoding_;
 }
 
-generic::Instruction *RiscV64Decoder::DecodeInstruction(uint64_t address) {
+generic::Instruction* RiscV64Decoder::DecodeInstruction(uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa64::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAddressMisaligned, address ^ 0x1,
                    inst);
@@ -82,12 +82,12 @@
   // If the address is greater than the max address, return an instruction
   // object that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa64::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAccessFault, address, nullptr);
     });
@@ -101,7 +101,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_);
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_);
   return instruction;
 }
 
diff --git a/riscv/riscv64_decoder.h b/riscv/riscv64_decoder.h
index 19578f7..6d5422f 100644
--- a/riscv/riscv64_decoder.h
+++ b/riscv/riscv64_decoder.h
@@ -41,7 +41,7 @@
 class RV64IsaFactory : public isa64::RiscV64GInstructionSetFactory {
  public:
   std::unique_ptr<isa64::Riscv64gSlot> CreateRiscv64gSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa64::Riscv64gSlot>(state);
   }
 };
@@ -53,8 +53,8 @@
   using SlotEnum = isa64::SlotEnum;
   using OpcodeEnum = isa64::OpcodeEnum;
 
-  RiscV64Decoder(RiscVState *state, util::MemoryInterface *memory);
-  RiscV64Decoder(RiscVState *state, util::MemoryInterface *memory,
+  RiscV64Decoder(RiscVState* state, util::MemoryInterface* memory);
+  RiscV64Decoder(RiscVState* state, util::MemoryInterface* memory,
                  bool use_abi_names);
   RiscV64Decoder() = delete;
   ~RiscV64Decoder() override;
@@ -62,25 +62,25 @@
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa64::kOpcodeNames[index];
   }
 
   // Getter.
-  isa64::RiscV64GEncoding *riscv_encoding() const { return riscv_encoding_; }
+  isa64::RiscV64GEncoding* riscv_encoding() const { return riscv_encoding_; }
 
  private:
-  RiscVState *state_;
-  util::MemoryInterface *memory_;
+  RiscVState* state_;
+  util::MemoryInterface* memory_;
   std::unique_ptr<generic::ProgramError> decode_error_;
-  generic::DataBuffer *inst_db_;
-  isa64::RiscV64GEncoding *riscv_encoding_;
-  RV64IsaFactory *riscv_isa_factory_;
-  isa64::RiscV64GInstructionSet *riscv_isa_;
+  generic::DataBuffer* inst_db_;
+  isa64::RiscV64GEncoding* riscv_encoding_;
+  RV64IsaFactory* riscv_isa_factory_;
+  isa64::RiscV64GInstructionSet* riscv_isa_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv64_renode.cc b/riscv/riscv64_renode.cc
index fbec443..b888771 100644
--- a/riscv/riscv64_renode.cc
+++ b/riscv/riscv64_renode.cc
@@ -7,10 +7,10 @@
 #include "riscv/riscv_renode.h"
 #include "riscv/riscv_state.h"
 
-::mpact::sim::util::renode::RenodeDebugInterface *CreateMpactSim(
+::mpact::sim::util::renode::RenodeDebugInterface* CreateMpactSim(
     std::string name, std::string cpu_type,
-    ::mpact::sim::util::MemoryInterface *renode_sysbus) {
-  auto *top = new ::mpact::sim::riscv::RiscVRenode(
+    ::mpact::sim::util::MemoryInterface* renode_sysbus) {
+  auto* top = new ::mpact::sim::riscv::RiscVRenode(
       name, renode_sysbus, ::mpact::sim::riscv::RiscVXlen::RV64);
   return top;
 }
diff --git a/riscv/riscv64_renode.h b/riscv/riscv64_renode.h
index b367b98..c75bb8e 100644
--- a/riscv/riscv64_renode.h
+++ b/riscv/riscv64_renode.h
@@ -9,8 +9,8 @@
 // This file defines the factory method for creating a RiscV 64 simulator for
 // use with ReNode.
 
-extern ::mpact::sim::util::renode::RenodeDebugInterface *CreateMpactSim(
+extern ::mpact::sim::util::renode::RenodeDebugInterface* CreateMpactSim(
     std::string name, std::string cpu_type,
-    ::mpact::sim::util::MemoryInterface *renode_sysbus);
+    ::mpact::sim::util::MemoryInterface* renode_sysbus);
 
 #endif  // THIRD_PARTY_MPACT_RISCV_RISCV64_RENODE_H_
diff --git a/riscv/riscv64g_bin_encoder_interface.cc b/riscv/riscv64g_bin_encoder_interface.cc
index 7e02c18..e44d771 100644
--- a/riscv/riscv64g_bin_encoder_interface.cc
+++ b/riscv/riscv64g_bin_encoder_interface.cc
@@ -49,14 +49,14 @@
 absl::StatusOr<std::tuple<uint64_t, int>>
 RiscV64GBinEncoderInterface::GetOpcodeEncoding(SlotEnum slot, int entry,
                                                OpcodeEnum opcode,
-                                               ResolverInterface *resolver) {
+                                               ResolverInterface* resolver) {
   return encoding64::kOpcodeEncodings->at(opcode);
 }
 
 absl::StatusOr<uint64_t> RiscV64GBinEncoderInterface::GetSrcOpEncoding(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, SourceOpEnum source_op, int source_num,
-    ResolverInterface *resolver) {
+    ResolverInterface* resolver) {
   auto iter = source_op_map_.find(*source_op);
   if (iter == source_op_map_.end()) {
     return absl::NotFoundError(absl::StrCat(
@@ -68,7 +68,7 @@
 absl::Status RiscV64GBinEncoderInterface::AppendSrcOpRelocation(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, SourceOpEnum source_op, int source_num,
-    ResolverInterface *resolver, std::vector<RelocationInfo> &relocations) {
+    ResolverInterface* resolver, std::vector<RelocationInfo>& relocations) {
   auto iter = relocation_source_op_map_.find(std::tie(opcode, source_op));
   if (iter == relocation_source_op_map_.end()) return absl::OkStatus();
   return iter->second(address, text, resolver, relocations);
@@ -77,7 +77,7 @@
 absl::StatusOr<uint64_t> RiscV64GBinEncoderInterface::GetDestOpEncoding(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, DestOpEnum dest_op, int dest_num,
-    ResolverInterface *resolver) {
+    ResolverInterface* resolver) {
   auto iter = dest_op_map_.find(*dest_op);
   if (iter == dest_op_map_.end()) {
     return absl::NotFoundError(
@@ -89,7 +89,7 @@
 absl::StatusOr<uint64_t> RiscV64GBinEncoderInterface::GetListDestOpEncoding(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, ListDestOpEnum dest_op, int dest_num,
-    ResolverInterface *resolver) {
+    ResolverInterface* resolver) {
   auto iter = list_dest_op_map_.find(*dest_op);
   if (iter == list_dest_op_map_.end()) {
     return absl::NotFoundError(absl::StrCat(
@@ -101,7 +101,7 @@
 absl::Status RiscV64GBinEncoderInterface::AppendDestOpRelocation(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, DestOpEnum dest_op, int dest_num,
-    ResolverInterface *resolver, std::vector<RelocationInfo> &relocations) {
+    ResolverInterface* resolver, std::vector<RelocationInfo>& relocations) {
   // There are no destination operands that require relocation.
   return absl::OkStatus();
 }
@@ -109,7 +109,7 @@
 absl::StatusOr<uint64_t> RiscV64GBinEncoderInterface::GetListSrcOpEncoding(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
     OpcodeEnum opcode, ListSourceOpEnum source_op, int source_num,
-    ResolverInterface *resolver) {
+    ResolverInterface* resolver) {
   auto iter = list_source_op_map_.find(*source_op);
   if (iter == list_source_op_map_.end()) {
     return absl::NotFoundError(absl::StrCat(
@@ -120,7 +120,7 @@
 
 absl::StatusOr<uint64_t> RiscV64GBinEncoderInterface::GetPredOpEncoding(
     uint64_t address, absl::string_view text, SlotEnum slot, int entry,
-    OpcodeEnum opcode, PredOpEnum pred_op, ResolverInterface *resolver) {
+    OpcodeEnum opcode, PredOpEnum pred_op, ResolverInterface* resolver) {
   auto iter = pred_op_map_.find(*pred_op);
   if (iter == pred_op_map_.end()) {
     return absl::NotFoundError(absl::StrCat(
diff --git a/riscv/riscv64g_bin_encoder_interface.h b/riscv/riscv64g_bin_encoder_interface.h
index f25fe1d..ec8726f 100644
--- a/riscv/riscv64g_bin_encoder_interface.h
+++ b/riscv/riscv64g_bin_encoder_interface.h
@@ -44,55 +44,55 @@
 class RiscV64GBinEncoderInterface : public RiscV64GEncoderInterfaceBase {
  public:
   RiscV64GBinEncoderInterface();
-  RiscV64GBinEncoderInterface(const RiscV64GBinEncoderInterface &) = delete;
-  RiscV64GBinEncoderInterface &operator=(const RiscV64GBinEncoderInterface &) =
+  RiscV64GBinEncoderInterface(const RiscV64GBinEncoderInterface&) = delete;
+  RiscV64GBinEncoderInterface& operator=(const RiscV64GBinEncoderInterface&) =
       delete;
   ~RiscV64GBinEncoderInterface() override = default;
 
   absl::StatusOr<std::tuple<uint64_t, int>> GetOpcodeEncoding(
       SlotEnum slot, int entry, OpcodeEnum opcode,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
   absl::StatusOr<uint64_t> GetSrcOpEncoding(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, SourceOpEnum source_op, int source_num,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
   absl::Status AppendSrcOpRelocation(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, SourceOpEnum source_op, int source_num,
-      ResolverInterface *resolver,
-      std::vector<RelocationInfo> &relocations) override;
+      ResolverInterface* resolver,
+      std::vector<RelocationInfo>& relocations) override;
   absl::StatusOr<uint64_t> GetDestOpEncoding(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, DestOpEnum dest_op, int dest_num,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
   absl::Status AppendDestOpRelocation(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, DestOpEnum dest_op, int dest_num,
-      ResolverInterface *resolver,
-      std::vector<RelocationInfo> &relocations) override;
+      ResolverInterface* resolver,
+      std::vector<RelocationInfo>& relocations) override;
   absl::StatusOr<uint64_t> GetListSrcOpEncoding(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, ListSourceOpEnum source_op, int source_num,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
   absl::StatusOr<uint64_t> GetListDestOpEncoding(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, ListDestOpEnum dest_op, int dest_num,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
   absl::StatusOr<uint64_t> GetPredOpEncoding(
       uint64_t address, absl::string_view text, SlotEnum slot, int entry,
       OpcodeEnum opcode, PredOpEnum pred_op,
-      ResolverInterface *resolver) override;
+      ResolverInterface* resolver) override;
 
  private:
   using OpMap = absl::flat_hash_map<
       int, std::function<absl::StatusOr<uint64_t>(uint64_t, absl::string_view,
-                                                  ResolverInterface *)>>;
+                                                  ResolverInterface*)>>;
 
   using RelocationMap =
       absl::flat_hash_map<std::tuple<OpcodeEnum, SourceOpEnum>,
                           std::function<absl::Status(
-                              uint64_t, absl::string_view, ResolverInterface *,
-                              std::vector<RelocationInfo> &)>>;
+                              uint64_t, absl::string_view, ResolverInterface*,
+                              std::vector<RelocationInfo>&)>>;
 
   OpMap source_op_map_;
   RelocationMap relocation_source_op_map_;
diff --git a/riscv/riscv64g_bitmanip_decoder.cc b/riscv/riscv64g_bitmanip_decoder.cc
index 708d4b2..a69b537 100644
--- a/riscv/riscv64g_bitmanip_decoder.cc
+++ b/riscv/riscv64g_bitmanip_decoder.cc
@@ -32,8 +32,8 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV64GBitmanipDecoder::RiscV64GBitmanipDecoder(RiscVState *state,
-                                                 util::MemoryInterface *memory)
+RiscV64GBitmanipDecoder::RiscV64GBitmanipDecoder(RiscVState* state,
+                                                 util::MemoryInterface* memory)
     : state_(state), memory_(memory) {
   // Need a data buffer to load instructions from memory. Allocate a single
   // buffer that can be reused for each instruction word.
@@ -53,17 +53,17 @@
   inst_db_->DecRef();
 }
 
-generic::Instruction *RiscV64GBitmanipDecoder::DecodeInstruction(
+generic::Instruction* RiscV64GBitmanipDecoder::DecodeInstruction(
     uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa64gzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAddressMisaligned,
                    inst->address() ^ 0x1, inst);
@@ -74,12 +74,12 @@
   // If the address is greater than the max address, return an instruction
   // that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(0, state_);
+    auto* inst = new generic::Instruction(0, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa64gzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this](generic::Instruction *inst) {
+    inst->set_semantic_function([this](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, inst->address(),
                    *ExceptionCode::kInstructionAccessFault, inst->address(),
                    nullptr);
@@ -94,7 +94,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_);
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_);
   return instruction;
 }
 
diff --git a/riscv/riscv64g_bitmanip_decoder.h b/riscv/riscv64g_bitmanip_decoder.h
index 52c35a5..683dbde 100644
--- a/riscv/riscv64g_bitmanip_decoder.h
+++ b/riscv/riscv64g_bitmanip_decoder.h
@@ -41,7 +41,7 @@
 class RV64GZBIsaFactory : public isa64gzb::RiscV64GZBInstructionSetFactory {
  public:
   std::unique_ptr<isa64gzb::Riscv64gzbSlot> CreateRiscv64gzbSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa64gzb::Riscv64gzbSlot>(state);
   }
 };
@@ -53,33 +53,33 @@
   using SlotEnum = isa64gzb::SlotEnum;
   using OpcodeEnum = isa64gzb::OpcodeEnum;
 
-  RiscV64GBitmanipDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV64GBitmanipDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV64GBitmanipDecoder() = delete;
   ~RiscV64GBitmanipDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa64gzb::kOpcodeNames[index];
   }
 
   // Getter.
-  isa64gzb::RiscV64GZBEncoding *riscv_encoding() const {
+  isa64gzb::RiscV64GZBEncoding* riscv_encoding() const {
     return riscv_encoding_;
   }
 
  private:
-  RiscVState *state_;
-  util::MemoryInterface *memory_;
-  generic::DataBuffer *inst_db_;
-  isa64gzb::RiscV64GZBEncoding *riscv_encoding_;
-  RV64GZBIsaFactory *riscv_isa_factory_;
-  isa64gzb::RiscV64GZBInstructionSet *riscv_isa_;
+  RiscVState* state_;
+  util::MemoryInterface* memory_;
+  generic::DataBuffer* inst_db_;
+  isa64gzb::RiscV64GZBEncoding* riscv_encoding_;
+  RV64GZBIsaFactory* riscv_isa_factory_;
+  isa64gzb::RiscV64GZBInstructionSet* riscv_isa_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv64g_encoding.cc b/riscv/riscv64g_encoding.cc
index cebbc65..7db0cb4 100644
--- a/riscv/riscv64g_encoding.cc
+++ b/riscv/riscv64g_encoding.cc
@@ -39,54 +39,54 @@
 
 // Generic helper functions to create register operands.
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(RiscVState *state,
+inline DestinationOperandInterface* GetRegisterDestinationOp(RiscVState* state,
                                                              std::string name,
                                                              int latency) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency);
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+inline DestinationOperandInterface* GetRegisterDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency, op_name);
 }
 
 template <typename T>
-inline DestinationOperandInterface *GetCSRSetBitsDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
+inline DestinationOperandInterface* GetCSRSetBitsDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
   auto result = state->csr_set()->GetCsr(name);
   if (!result.ok()) {
     LOG(ERROR) << "No such CSR '" << name << "'";
     return nullptr;
   }
-  auto *csr = result.value();
-  auto *op = csr->CreateSetDestinationOperand(latency, op_name);
+  auto* csr = result.value();
+  auto* op = csr->CreateSetDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand();
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand();
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name,
                                                    std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand(op_name);
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand(op_name);
   return op;
 }
 
-RiscV64GEncoding::RiscV64GEncoding(RiscVState *state)
+RiscV64GEncoding::RiscV64GEncoding(RiscVState* state)
     : RiscV64GEncoding(state, true) {}
 
-RiscV64GEncoding::RiscV64GEncoding(RiscVState *state, bool use_abi_names)
+RiscV64GEncoding::RiscV64GEncoding(RiscVState* state, bool use_abi_names)
     : state_(state) {
   if (use_abi_names) {
     xreg_alias_ = xreg_abi_names_;
@@ -107,7 +107,7 @@
   // Source operand getters.
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kAAq),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding64::inst32_format::ExtractAq(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -115,7 +115,7 @@
                      }));
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kARl),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding64::inst32_format::ExtractRl(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -203,7 +203,7 @@
         if (!res.ok()) {
           return new generic::ImmediateOperand<uint32_t>(csr_indx);
         }
-        auto *csr = res.value();
+        auto* csr = res.value();
         return new generic::ImmediateOperand<uint32_t>(csr_indx, csr->name());
       }));
   source_op_getters_.insert(
@@ -332,34 +332,32 @@
         return new generic::ImmediateOperand<uint32_t>(
             encoding64::fence::ExtractPred(inst_word_));
       }));
-  source_op_getters_.insert(
-      std::make_pair(static_cast<int>(SourceOpEnum::kRm),
-                     [this]() -> SourceOperandInterface * {
-                       uint32_t rm = (inst_word_ >> 12) & 0x7;
-                       switch (rm) {
-                         case 0:
-                           return new generic::IntLiteralOperand<0>();
-                         case 1:
-                           return new generic::IntLiteralOperand<1>();
-                         case 2:
-                           return new generic::IntLiteralOperand<2>();
-                         case 3:
-                           return new generic::IntLiteralOperand<3>();
-                         case 4:
-                           return new generic::IntLiteralOperand<4>();
-                         case 5:
-                           return new generic::IntLiteralOperand<5>();
-                         case 6:
-                           return new generic::IntLiteralOperand<6>();
-                         case 7:
-                           return new generic::IntLiteralOperand<7>();
-                         default:
-                           return nullptr;
-                       }
-                     }));
   source_op_getters_.insert(std::make_pair(
-      static_cast<int>(SourceOpEnum::kRd),
-      [this]() -> SourceOperandInterface * {
+      static_cast<int>(SourceOpEnum::kRm), [this]() -> SourceOperandInterface* {
+        uint32_t rm = (inst_word_ >> 12) & 0x7;
+        switch (rm) {
+          case 0:
+            return new generic::IntLiteralOperand<0>();
+          case 1:
+            return new generic::IntLiteralOperand<1>();
+          case 2:
+            return new generic::IntLiteralOperand<2>();
+          case 3:
+            return new generic::IntLiteralOperand<3>();
+          case 4:
+            return new generic::IntLiteralOperand<4>();
+          case 5:
+            return new generic::IntLiteralOperand<5>();
+          case 6:
+            return new generic::IntLiteralOperand<6>();
+          case 7:
+            return new generic::IntLiteralOperand<7>();
+          default:
+            return nullptr;
+        }
+      }));
+  source_op_getters_.insert(std::make_pair(
+      static_cast<int>(SourceOpEnum::kRd), [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRd(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -374,7 +372,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs1),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRs1(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -389,7 +387,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs2),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRs2(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -492,7 +490,7 @@
       }));
   dest_op_getters_.insert(
       std::make_pair(static_cast<int>(DestOpEnum::kRd),
-                     [this](int latency) -> DestinationOperandInterface * {
+                     [this](int latency) -> DestinationOperandInterface* {
                        int num = encoding64::r_type::ExtractRd(inst_word_);
                        if (num == 0) {
                          return GetRegisterDestinationOp<RV64Register>(
@@ -561,7 +559,7 @@
                      [](int begin, int end) { return nullptr; }));
 }
 
-ResourceOperandInterface *RiscV64GEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV64GEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -578,19 +576,19 @@
       static_cast<int>(SimpleResourceEnum::kNone), []() { return nullptr; }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -598,7 +596,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -606,7 +604,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractCsRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -614,13 +612,13 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCdrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -628,7 +626,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -636,65 +634,65 @@
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kCsr),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("csr");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kNextPc),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("next_pc");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -702,7 +700,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -710,7 +708,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -719,23 +717,23 @@
   // X0 is constant 0, so no resource issue.
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX0),
-                     []() -> generic::SimpleResource * { return nullptr; }));
+                     []() -> generic::SimpleResource* { return nullptr; }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX1),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x1");
                      }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX2),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x2");
                      }));
 }
 
-ResourceOperandInterface *RiscV64GEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV64GEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -743,18 +741,18 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
+  auto* op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV64GEncoding::GetDestination(
+DestinationOperandInterface* RiscV64GEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum, DestOpEnum dest_op, int dest_no, int latency) {
   int index = static_cast<int>(dest_op);
   auto iter = dest_op_getters_.find(index);
@@ -765,7 +763,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV64GEncoding::GetSource(SlotEnum, int, OpcodeEnum,
+SourceOperandInterface* RiscV64GEncoding::GetSource(SlotEnum, int, OpcodeEnum,
                                                     SourceOpEnum source_op,
                                                     int source_no) {
   int index = static_cast<int>(source_op);
diff --git a/riscv/riscv64g_encoding.h b/riscv/riscv64g_encoding.h
index 92a96f9..ea1390c 100644
--- a/riscv/riscv64g_encoding.h
+++ b/riscv/riscv64g_encoding.h
@@ -39,13 +39,13 @@
 class RiscV64GEncoding : public RiscV64GEncodingBase {
  public:
   using SourceOpGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface*()>>;
   using DestOpGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<DestinationOperandInterface *(int)>>;
+      int, absl::AnyInvocable<DestinationOperandInterface*(int)>>;
   using SimpleResourceGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource*()>>;
   using ComplexResourceGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<ResourceOperandInterface *(int, int)>>;
+      int, absl::AnyInvocable<ResourceOperandInterface*(int, int)>>;
 
   static constexpr int kParseGroup32Size = 32;
   static constexpr int kParseGroup16Size = 32;
@@ -62,8 +62,8 @@
       "a1",   "a2", "a3", "a4", "a5",  "a6",  "a7", "s2", "s3", "s4", "s5",
       "s6",   "s7", "s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6"};
 
-  explicit RiscV64GEncoding(RiscVState *state);
-  RiscV64GEncoding(RiscVState *state, bool use_abi_names);
+  explicit RiscV64GEncoding(RiscVState* state);
+  RiscV64GEncoding(RiscVState* state, bool use_abi_names);
   ~RiscV64GEncoding() override;
 
   // Parses an instruction and determines the opcode.
@@ -76,7 +76,7 @@
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
 
   // There is no predicate, so return nullptr.
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
@@ -88,22 +88,22 @@
   // where the resource itself is a register bank, and the argument specifies
   // which register (or more precisely) which encoding "field" specifies the
   // register number.
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
   // The following method returns a source operand that corresponds to the
   // particular operand field.
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
   // The following method returns a destination operand that corresponds to the
   // particular operand field.
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
   // This method returns latency for any destination operand for which the
@@ -114,18 +114,18 @@
   }
 
   // Getter.
-  generic::SimpleResourcePool *resource_pool() const { return resource_pool_; }
+  generic::SimpleResourcePool* resource_pool() const { return resource_pool_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
-  RiscVState *state() const { return state_; }
+  RiscVState* state() const { return state_; }
   OpcodeEnum opcode() const { return opcode_; }
   uint32_t inst_word() const { return inst_word_; }
 
@@ -140,17 +140,17 @@
 
   // Pointer to the register names to be used. This will either point to
   // xreg_names or xreg_abi_names.
-  const std::string *xreg_alias_;
+  const std::string* xreg_alias_;
 
   SourceOpGetterMap source_op_getters_;
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace isa64
diff --git a/riscv/riscv64g_vec_decoder.cc b/riscv/riscv64g_vec_decoder.cc
index d7d3abd..f3fde6e 100644
--- a/riscv/riscv64g_vec_decoder.cc
+++ b/riscv/riscv64g_vec_decoder.cc
@@ -34,8 +34,8 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV64GVecDecoder::RiscV64GVecDecoder(RiscVState *state,
-                                       util::MemoryInterface *memory)
+RiscV64GVecDecoder::RiscV64GVecDecoder(RiscVState* state,
+                                       util::MemoryInterface* memory)
     : state_(state),
       memory_(memory),
       inst_db_(state_->db_factory()->Allocate<uint32_t>(1)) {
@@ -55,16 +55,16 @@
 
 RiscV64GVecDecoder::~RiscV64GVecDecoder() { inst_db_->DecRef(); }
 
-generic::Instruction *RiscV64GVecDecoder::DecodeInstruction(uint64_t address) {
+generic::Instruction* RiscV64GVecDecoder::DecodeInstruction(uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa64v::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAddressMisaligned, address ^ 0x1,
                    inst);
@@ -75,12 +75,12 @@
   // If the address is greater than the max address, return an instruction
   // object that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa64v::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAccessFault, address, nullptr);
     });
@@ -94,7 +94,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
   return instruction;
 }
 
diff --git a/riscv/riscv64g_vec_decoder.h b/riscv/riscv64g_vec_decoder.h
index 0a1a2e3..9a651cf 100644
--- a/riscv/riscv64g_vec_decoder.h
+++ b/riscv/riscv64g_vec_decoder.h
@@ -41,7 +41,7 @@
 class RV64GVIsaFactory : public isa64v::RiscV64GVInstructionSetFactory {
  public:
   std::unique_ptr<isa64v::Riscv64gvSlot> CreateRiscv64gvSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa64v::Riscv64gvSlot>(state);
   }
 };
@@ -54,28 +54,28 @@
   using SlotEnum = isa64v::SlotEnum;
   using OpcodeEnum = isa64v::OpcodeEnum;
 
-  RiscV64GVecDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV64GVecDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV64GVecDecoder() = delete;
   ~RiscV64GVecDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa64v::kOpcodeNames[index];
   }
 
  private:
-  RiscVState *const state_;
-  util::MemoryInterface *const memory_;
+  RiscVState* const state_;
+  util::MemoryInterface* const memory_;
 
   // Buffer used to load instructions from memory. Re-used for each instruction
   // word.
-  generic::DataBuffer *const inst_db_;
+  generic::DataBuffer* const inst_db_;
 
   std::unique_ptr<generic::ProgramError> decode_error_;
   std::unique_ptr<isa64v::RiscV64GVecEncoding> riscv_encoding_;
diff --git a/riscv/riscv64g_vec_encoding.cc b/riscv/riscv64g_vec_encoding.cc
index a7505ed..d235d5a 100644
--- a/riscv/riscv64g_vec_encoding.cc
+++ b/riscv/riscv64g_vec_encoding.cc
@@ -47,13 +47,13 @@
 constexpr int kNumRegTable[8] = {8, 1, 2, 1, 4, 1, 2, 1};
 
 template <typename M, typename E, typename G>
-inline void Insert(M &map, E entry, G getter) {
+inline void Insert(M& map, E entry, G getter) {
   map.insert(std::make_pair(static_cast<int>(entry), getter));
 }
 
 template <typename RegType>
-inline void GetVRegGroup(RiscVState *state, int reg_num,
-                         std::vector<generic::RegisterBase *> *vreg_group) {
+inline void GetVRegGroup(RiscVState* state, int reg_num,
+                         std::vector<generic::RegisterBase*>* vreg_group) {
   // The number of registers in a vector register group depends on the register
   // index: 0, 8, 16, 24 each have 8 registers, 4, 12, 20, 28 each have 4,
   // 2, 6, 10, 14, 18, 22, 26, 30 each have two, and all odd numbered register
@@ -65,109 +65,109 @@
   }
 }
 template <typename RegType>
-inline SourceOperandInterface *GetVectorRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorRegisterSourceOp(RiscVState* state,
                                                          int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+inline DestinationOperandInterface* GetVectorRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetVectorMaskRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorMaskRegisterSourceOp(RiscVState* state,
                                                              int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorMaskRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
+inline DestinationOperandInterface* GetVectorMaskRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
 
 // Generic helper functions to create register operands.
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(RiscVState *state,
+inline DestinationOperandInterface* GetRegisterDestinationOp(RiscVState* state,
                                                              std::string name,
                                                              int latency) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency);
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+inline DestinationOperandInterface* GetRegisterDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency, op_name);
 }
 
 template <typename T>
-inline DestinationOperandInterface *GetCSRSetBitsDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
+inline DestinationOperandInterface* GetCSRSetBitsDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
   auto result = state->csr_set()->GetCsr(name);
   if (!result.ok()) {
     LOG(ERROR) << "No such CSR '" << name << "'";
     return nullptr;
   }
-  auto *csr = result.value();
-  auto *op = csr->CreateSetDestinationOperand(latency, op_name);
+  auto* csr = result.value();
+  auto* op = csr->CreateSetDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand();
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand();
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name,
                                                    std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand(op_name);
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand(op_name);
   return op;
 }
 
 }  // namespace
 
-RiscV64GVecEncoding::RiscV64GVecEncoding(RiscVState *state)
+RiscV64GVecEncoding::RiscV64GVecEncoding(RiscVState* state)
     : RiscV64GVecEncoding(state, true) {}
 
-RiscV64GVecEncoding::RiscV64GVecEncoding(RiscVState *state, bool use_abi_names)
+RiscV64GVecEncoding::RiscV64GVecEncoding(RiscVState* state, bool use_abi_names)
     : state_(state) {
   if (use_abi_names) {
     xreg_alias_ = xreg_abi_names_;
@@ -200,7 +200,7 @@
   // Source operand getters.
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kAAq),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding64::inst32_format::ExtractAq(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -208,7 +208,7 @@
                      }));
   source_op_getters_.insert(
       std::make_pair(static_cast<int>(SourceOpEnum::kARl),
-                     [this]() -> SourceOperandInterface * {
+                     [this]() -> SourceOperandInterface* {
                        if (encoding64::inst32_format::ExtractRl(inst_word_)) {
                          return new generic::IntLiteralOperand<1>();
                        }
@@ -296,7 +296,7 @@
         if (!res.ok()) {
           return new generic::ImmediateOperand<uint32_t>(csr_indx);
         }
-        auto *csr = res.value();
+        auto* csr = res.value();
         return new generic::ImmediateOperand<uint32_t>(csr_indx, csr->name());
       }));
   source_op_getters_.insert(
@@ -425,34 +425,32 @@
         return new generic::ImmediateOperand<uint32_t>(
             encoding64::fence::ExtractPred(inst_word_));
       }));
-  source_op_getters_.insert(
-      std::make_pair(static_cast<int>(SourceOpEnum::kRm),
-                     [this]() -> SourceOperandInterface * {
-                       uint32_t rm = (inst_word_ >> 12) & 0x7;
-                       switch (rm) {
-                         case 0:
-                           return new generic::IntLiteralOperand<0>();
-                         case 1:
-                           return new generic::IntLiteralOperand<1>();
-                         case 2:
-                           return new generic::IntLiteralOperand<2>();
-                         case 3:
-                           return new generic::IntLiteralOperand<3>();
-                         case 4:
-                           return new generic::IntLiteralOperand<4>();
-                         case 5:
-                           return new generic::IntLiteralOperand<5>();
-                         case 6:
-                           return new generic::IntLiteralOperand<6>();
-                         case 7:
-                           return new generic::IntLiteralOperand<7>();
-                         default:
-                           return nullptr;
-                       }
-                     }));
   source_op_getters_.insert(std::make_pair(
-      static_cast<int>(SourceOpEnum::kRd),
-      [this]() -> SourceOperandInterface * {
+      static_cast<int>(SourceOpEnum::kRm), [this]() -> SourceOperandInterface* {
+        uint32_t rm = (inst_word_ >> 12) & 0x7;
+        switch (rm) {
+          case 0:
+            return new generic::IntLiteralOperand<0>();
+          case 1:
+            return new generic::IntLiteralOperand<1>();
+          case 2:
+            return new generic::IntLiteralOperand<2>();
+          case 3:
+            return new generic::IntLiteralOperand<3>();
+          case 4:
+            return new generic::IntLiteralOperand<4>();
+          case 5:
+            return new generic::IntLiteralOperand<5>();
+          case 6:
+            return new generic::IntLiteralOperand<6>();
+          case 7:
+            return new generic::IntLiteralOperand<7>();
+          default:
+            return nullptr;
+        }
+      }));
+  source_op_getters_.insert(std::make_pair(
+      static_cast<int>(SourceOpEnum::kRd), [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRd(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -467,7 +465,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs1),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRs1(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -482,7 +480,7 @@
       }));
   source_op_getters_.insert(std::make_pair(
       static_cast<int>(SourceOpEnum::kRs2),
-      [this]() -> SourceOperandInterface * {
+      [this]() -> SourceOperandInterface* {
         int num = encoding64::r_type::ExtractRs2(inst_word_);
         if (num == 0)
           return new generic::IntLiteralOperand<0>({1}, xreg_alias_[0]);
@@ -592,7 +590,7 @@
       }));
   dest_op_getters_.insert(
       std::make_pair(static_cast<int>(DestOpEnum::kRd),
-                     [this](int latency) -> DestinationOperandInterface * {
+                     [this](int latency) -> DestinationOperandInterface* {
                        int num = encoding64::r_type::ExtractRd(inst_word_);
                        if (num == 0) {
                          return GetRegisterDestinationOp<RV64Register>(
@@ -651,12 +649,12 @@
 
 void RiscV64GVecEncoding::InitializeVectorSourceOperandGetters() {
   Insert(source_op_getters_, SourceOpEnum::kVd,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding64::v_arith::ExtractVd(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVmask,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto vm = encoding64::v_arith::ExtractVm(inst_word_);
            if (vm == 1) {
              // Unmasked, return the True mask.
@@ -666,79 +664,79 @@
            return GetVectorMaskRegisterSourceOp<RVVectorRegister>(state_, 0);
          });
   Insert(source_op_getters_, SourceOpEnum::kVmaskTrue,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            return new RV32VectorTrueOperand(state_);
          });
   Insert(source_op_getters_, SourceOpEnum::kVm,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto vm = encoding64::v_arith::ExtractVm(inst_word_);
            return new generic::ImmediateOperand<bool>(
                vm, absl::StrCat("vm.", vm ? "t" : "f"));
          });
   Insert(source_op_getters_, SourceOpEnum::kVs1,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding64::v_arith::ExtractVs1(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVs2,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding64::v_arith::ExtractVs2(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
   Insert(source_op_getters_, SourceOpEnum::kVs3,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num = encoding64::v_mem::ExtractVs3(inst_word_);
            return GetVectorRegisterSourceOp<RVVectorRegister>(state_, num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kSimm5,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding64::inst32_format::ExtractSimm5(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kUimm5,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num = encoding64::inst32_format::ExtractUimm5(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kZimm10,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num =
                encoding64::inst32_format::ExtractZimm10(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kZimm11,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            const auto num =
                encoding64::inst32_format::ExtractZimm11(inst_word_);
            return new generic::ImmediateOperand<int32_t>(num);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst1,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(1);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst2,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(2);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst4,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(4);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kConst8,
-         []() -> SourceOperandInterface * {
+         []() -> SourceOperandInterface* {
            return new generic::ImmediateOperand<int32_t>(8);
          });
 
   Insert(source_op_getters_, SourceOpEnum::kNf,
-         [this]() -> SourceOperandInterface * {
+         [this]() -> SourceOperandInterface* {
            auto num_fields = encoding64::v_mem::ExtractNf(inst_word_);
            return new generic::ImmediateOperand<uint8_t>(
                num_fields, absl::StrCat(num_fields + 1));
@@ -747,7 +745,7 @@
 
 void RiscV64GVecEncoding::InitializeVectorDestinationOperandGetters() {
   Insert(dest_op_getters_, DestOpEnum::kVd,
-         [this](int latency) -> DestinationOperandInterface * {
+         [this](int latency) -> DestinationOperandInterface* {
            auto num = encoding64::v_arith::ExtractVd(inst_word_);
            return GetVectorRegisterDestinationOp<RVVectorRegister>(
                state_, latency, num);
@@ -772,7 +770,7 @@
                      [](int begin, int end) { return nullptr; }));
 }
 
-ResourceOperandInterface *RiscV64GVecEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV64GVecEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -789,19 +787,19 @@
       static_cast<int>(SimpleResourceEnum::kNone), []() { return nullptr; }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3drs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractCsRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -809,7 +807,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractClRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -817,7 +815,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kC3rs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         int num = encoding64::inst16_format::ExtractCsRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -825,13 +823,13 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCdrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -839,7 +837,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kCrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::c_r::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -847,65 +845,65 @@
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kCsr),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("csr");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kDrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRd(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs1(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs2(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kFrs3),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::r4_type::ExtractRs3(inst_word_);
         return resource_pool_->GetOrAddResource(absl::StrCat("d", num));
       }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kNextPc),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("next_pc");
                      }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRd),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRd(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -913,7 +911,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs1),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs1(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -921,7 +919,7 @@
       }));
   simple_resource_getters_.insert(std::make_pair(
       static_cast<int>(SimpleResourceEnum::kRs2),
-      [this]() -> generic::SimpleResource * {
+      [this]() -> generic::SimpleResource* {
         auto num = encoding64::a_type::ExtractRs2(inst_word_);
         // If num is 0 it refers to the zero register. No resource.
         if (num == 0) return nullptr;
@@ -930,23 +928,23 @@
   // X0 is constant 0, so no resource issue.
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX0),
-                     []() -> generic::SimpleResource * { return nullptr; }));
+                     []() -> generic::SimpleResource* { return nullptr; }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX1),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x1");
                      }));
   simple_resource_getters_.insert(
       std::make_pair(static_cast<int>(SimpleResourceEnum::kX2),
-                     [this]() -> generic::SimpleResource * {
+                     [this]() -> generic::SimpleResource* {
                        return resource_pool_->GetOrAddResource("x2");
                      }));
 }
 
-ResourceOperandInterface *RiscV64GVecEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV64GVecEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -954,18 +952,18 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
+  auto* op = new SimpleResourceOperand(resource_set, end, resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV64GVecEncoding::GetDestination(
+DestinationOperandInterface* RiscV64GVecEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum, DestOpEnum dest_op, int dest_no, int latency) {
   int index = static_cast<int>(dest_op);
   auto iter = dest_op_getters_.find(index);
@@ -976,7 +974,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV64GVecEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV64GVecEncoding::GetSource(SlotEnum, int,
                                                        OpcodeEnum,
                                                        SourceOpEnum source_op,
                                                        int source_no) {
diff --git a/riscv/riscv64g_vec_encoding.h b/riscv/riscv64g_vec_encoding.h
index 4cec413..214e188 100644
--- a/riscv/riscv64g_vec_encoding.h
+++ b/riscv/riscv64g_vec_encoding.h
@@ -38,19 +38,19 @@
 class RiscV64GVecEncoding : public RiscV64GVEncodingBase {
  public:
   using SourceOpGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface*()>>;
   using DestOpGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<DestinationOperandInterface *(int)>>;
+      int, absl::AnyInvocable<DestinationOperandInterface*(int)>>;
   using SimpleResourceGetterMap =
-      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource *()>>;
+      absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource*()>>;
   using ComplexResourceGetterMap = absl::flat_hash_map<
-      int, absl::AnyInvocable<ResourceOperandInterface *(int, int)>>;
+      int, absl::AnyInvocable<ResourceOperandInterface*(int, int)>>;
 
   static constexpr int kParseGroup32Size = 32;
   static constexpr int kParseGroup16Size = 32;
 
-  explicit RiscV64GVecEncoding(RiscVState *state);
-  RiscV64GVecEncoding(RiscVState *state, bool use_abi_names);
+  explicit RiscV64GVecEncoding(RiscVState* state);
+  RiscV64GVecEncoding(RiscVState* state, bool use_abi_names);
   ~RiscV64GVecEncoding() override;
 
   // Parses an instruction and determines the opcode.
@@ -63,7 +63,7 @@
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
 
   // There is no predicate, so return nullptr.
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
@@ -75,22 +75,22 @@
   // where the resource itself is a register bank, and the argument specifies
   // which register (or more precisely) which encoding "field" specifies the
   // register number.
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
   // The following method returns a source operand that corresponds to the
   // particular operand field.
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
   // The following method returns a destination operand that corresponds to the
   // particular operand field.
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
   // This method returns latency for any destination operand for which the
@@ -102,12 +102,12 @@
 
   // Getter.
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
@@ -136,10 +136,10 @@
       "fa6", "fa7", "fs2",  "fs3",  "fs4", "fs5", "fs6",  "fs7",
       "fs8", "fs9", "fs10", "fs11", "ft8", "ft9", "ft10", "ft11"};
 
-  RiscVState *state() const { return state_; }
+  RiscVState* state() const { return state_; }
   OpcodeEnum opcode() const { return opcode_; }
   uint32_t inst_word() const { return inst_word_; }
-  generic::SimpleResourcePool *resource_pool() const { return resource_pool_; }
+  generic::SimpleResourcePool* resource_pool() const { return resource_pool_; }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
@@ -154,17 +154,17 @@
 
   // Pointer to the register names to be used. This will either point to
   // xreg_names or xreg_abi_names.
-  const std::string *xreg_alias_;
+  const std::string* xreg_alias_;
 
   SourceOpGetterMap source_op_getters_;
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace isa64v
diff --git a/riscv/riscv64gzb_encoding.cc b/riscv/riscv64gzb_encoding.cc
index 9c9d608..fa356f3 100644
--- a/riscv/riscv64gzb_encoding.cc
+++ b/riscv/riscv64gzb_encoding.cc
@@ -36,7 +36,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
-RiscV64GZBEncoding::RiscV64GZBEncoding(RiscVState *state)
+RiscV64GZBEncoding::RiscV64GZBEncoding(RiscVState* state)
     : state_(state),
       inst_word_(0),
       opcode_(OpcodeEnum::kNone),
@@ -102,7 +102,7 @@
   format_ = format;
 }
 
-ResourceOperandInterface *RiscV64GZBEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV64GZBEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -114,10 +114,10 @@
   return (iter->second)(begin, end);
 }
 
-ResourceOperandInterface *RiscV64GZBEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV64GZBEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -125,19 +125,19 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new generic::SimpleResourceOperand(resource_set, end,
+  auto* op = new generic::SimpleResourceOperand(resource_set, end,
                                                 resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV64GZBEncoding::GetDestination(
+DestinationOperandInterface* RiscV64GZBEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -151,7 +151,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV64GZBEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV64GZBEncoding::GetSource(SlotEnum, int,
                                                       OpcodeEnum opcode,
                                                       SourceOpEnum source_op,
                                                       int source_no) {
diff --git a/riscv/riscv64gzb_encoding.h b/riscv/riscv64gzb_encoding.h
index 8fc2b3b..651d49d 100644
--- a/riscv/riscv64gzb_encoding.h
+++ b/riscv/riscv64gzb_encoding.h
@@ -37,30 +37,30 @@
 class RiscV64GZBEncoding : public RiscV64GZBEncodingBase,
                            public RiscVEncodingCommon {
  public:
-  explicit RiscV64GZBEncoding(RiscVState *state);
+  explicit RiscV64GZBEncoding(RiscVState* state);
   ~RiscV64GZBEncoding() override;
 
   void ParseInstruction(uint32_t inst_word);
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -69,25 +69,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -95,8 +95,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace mpact::sim::riscv::isa64gzb
diff --git a/riscv/riscv64gzb_vec_decoder.cc b/riscv/riscv64gzb_vec_decoder.cc
index 6805732..a578f89 100644
--- a/riscv/riscv64gzb_vec_decoder.cc
+++ b/riscv/riscv64gzb_vec_decoder.cc
@@ -34,8 +34,8 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
-RiscV64GZBVecDecoder::RiscV64GZBVecDecoder(RiscVState *state,
-                                           util::MemoryInterface *memory)
+RiscV64GZBVecDecoder::RiscV64GZBVecDecoder(RiscVState* state,
+                                           util::MemoryInterface* memory)
     : state_(state),
       memory_(memory),
       inst_db_(state_->db_factory()->Allocate<uint32_t>(1)) {
@@ -55,17 +55,17 @@
 
 RiscV64GZBVecDecoder::~RiscV64GZBVecDecoder() { inst_db_->DecRef(); }
 
-generic::Instruction *RiscV64GZBVecDecoder::DecodeInstruction(
+generic::Instruction* RiscV64GZBVecDecoder::DecodeInstruction(
     uint64_t address) {
   // First check that the address is aligned properly. If not, create and return
   // an instruction object that will raise an exception.
   if (address & 0x1) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(1);
     inst->SetDisassemblyString("Misaligned instruction address");
     inst->set_opcode(*isa64gvzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAddressMisaligned, address ^ 0x1,
                    inst);
@@ -76,12 +76,12 @@
   // If the address is greater than the max address, return an instruction
   // object that will raise an exception.
   if (address > state_->max_physical_address()) {
-    auto *inst = new generic::Instruction(address, state_);
+    auto* inst = new generic::Instruction(address, state_);
     inst->set_size(0);
     inst->SetDisassemblyString("Instruction access fault");
     inst->set_opcode(*isa64gvzb::OpcodeEnum::kNone);
     inst->set_address(address);
-    inst->set_semantic_function([this, address](generic::Instruction *inst) {
+    inst->set_semantic_function([this, address](generic::Instruction* inst) {
       state_->Trap(/*is_interrupt*/ false, address,
                    *ExceptionCode::kInstructionAccessFault, address, nullptr);
     });
@@ -95,7 +95,7 @@
 
   // Call the isa decoder to obtain a new instruction object for the instruction
   // word that was parsed above.
-  auto *instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
+  auto* instruction = riscv_isa_->Decode(address, riscv_encoding_.get());
   return instruction;
 }
 
diff --git a/riscv/riscv64gzb_vec_decoder.h b/riscv/riscv64gzb_vec_decoder.h
index b828271..723defb 100644
--- a/riscv/riscv64gzb_vec_decoder.h
+++ b/riscv/riscv64gzb_vec_decoder.h
@@ -41,7 +41,7 @@
 class RV64GVZBIsaFactory : public isa64gvzb::RiscV64GVZBInstructionSetFactory {
  public:
   std::unique_ptr<isa64gvzb::Riscv64gvzbSlot> CreateRiscv64gvzbSlot(
-      ArchState *state) override {
+      ArchState* state) override {
     return std::make_unique<isa64gvzb::Riscv64gvzbSlot>(state);
   }
 };
@@ -54,28 +54,28 @@
   using SlotEnum = isa64gvzb::SlotEnum;
   using OpcodeEnum = isa64gvzb::OpcodeEnum;
 
-  RiscV64GZBVecDecoder(RiscVState *state, util::MemoryInterface *memory);
+  RiscV64GZBVecDecoder(RiscVState* state, util::MemoryInterface* memory);
   RiscV64GZBVecDecoder() = delete;
   ~RiscV64GZBVecDecoder() override;
 
   // This will always return a valid instruction that can be executed. In the
   // case of a decode error, the semantic function in the instruction object
   // instance will raise an internal simulator error when executed.
-  generic::Instruction *DecodeInstruction(uint64_t address) override;
+  generic::Instruction* DecodeInstruction(uint64_t address) override;
   // Return the number of opcodes supported by this decoder.
   int GetNumOpcodes() const override { return *OpcodeEnum::kPastMaxValue; }
   // Return the name of the opcode at the given index.
-  const char *GetOpcodeName(int index) const override {
+  const char* GetOpcodeName(int index) const override {
     return isa64gvzb::kOpcodeNames[index];
   }
 
  private:
-  RiscVState *const state_;
-  util::MemoryInterface *const memory_;
+  RiscVState* const state_;
+  util::MemoryInterface* const memory_;
 
   // Buffer used to load instructions from memory. Re-used for each instruction
   // word.
-  generic::DataBuffer *const inst_db_;
+  generic::DataBuffer* const inst_db_;
 
   std::unique_ptr<generic::ProgramError> decode_error_;
   std::unique_ptr<isa64gvzb::RiscV64GZBVecEncoding> riscv_encoding_;
diff --git a/riscv/riscv64gzb_vec_encoding.cc b/riscv/riscv64gzb_vec_encoding.cc
index 43e913a..cdcc30b 100644
--- a/riscv/riscv64gzb_vec_encoding.cc
+++ b/riscv/riscv64gzb_vec_encoding.cc
@@ -37,7 +37,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
-RiscV64GZBVecEncoding::RiscV64GZBVecEncoding(RiscVState *state)
+RiscV64GZBVecEncoding::RiscV64GZBVecEncoding(RiscVState* state)
     : state_(state),
       inst_word_(0),
       opcode_(OpcodeEnum::kNone),
@@ -110,7 +110,7 @@
   format_ = format;
 }
 
-ResourceOperandInterface *RiscV64GZBVecEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* RiscV64GZBVecEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   int index = static_cast<int>(resource);
@@ -122,10 +122,10 @@
   return (iter->second)(begin, end);
 }
 
-ResourceOperandInterface *RiscV64GZBVecEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* RiscV64GZBVecEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   if (resource_vec.empty()) return nullptr;
-  auto *resource_set = resource_pool_->CreateResourceSet();
+  auto* resource_set = resource_pool_->CreateResourceSet();
   for (auto resource_enum : resource_vec) {
     int index = static_cast<int>(resource_enum);
     auto iter = simple_resource_getters_.find(index);
@@ -133,19 +133,19 @@
       LOG(WARNING) << "No getter for simple resource " << index;
       continue;
     }
-    auto *resource = (iter->second)();
+    auto* resource = (iter->second)();
     auto status = resource_set->AddResource(resource);
     if (!status.ok()) {
       LOG(ERROR) << "Unable to add resource to resource set ("
                  << static_cast<int>(resource_enum) << ")";
     }
   }
-  auto *op = new generic::SimpleResourceOperand(resource_set, end,
+  auto* op = new generic::SimpleResourceOperand(resource_set, end,
                                                 resource_delay_line_);
   return op;
 }
 
-DestinationOperandInterface *RiscV64GZBVecEncoding::GetDestination(
+DestinationOperandInterface* RiscV64GZBVecEncoding::GetDestination(
     SlotEnum, int, OpcodeEnum opcode, DestOpEnum dest_op, int dest_no,
     int latency) {
   int index = static_cast<int>(dest_op);
@@ -159,7 +159,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *RiscV64GZBVecEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* RiscV64GZBVecEncoding::GetSource(SlotEnum, int,
                                                          OpcodeEnum opcode,
                                                          SourceOpEnum source_op,
                                                          int source_no) {
diff --git a/riscv/riscv64gzb_vec_encoding.h b/riscv/riscv64gzb_vec_encoding.h
index 8966e99..9dc5c26 100644
--- a/riscv/riscv64gzb_vec_encoding.h
+++ b/riscv/riscv64gzb_vec_encoding.h
@@ -37,30 +37,30 @@
 class RiscV64GZBVecEncoding : public RiscV64GVZBEncodingBase,
                               public RiscVEncodingCommon {
  public:
-  explicit RiscV64GZBVecEncoding(RiscVState *state);
+  explicit RiscV64GZBVecEncoding(RiscVState* state);
   ~RiscV64GZBVecEncoding() override;
 
   void ParseInstruction(uint32_t inst_word);
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -69,25 +69,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -95,8 +95,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace mpact::sim::riscv::isa64gvzb
diff --git a/riscv/riscv_a_instructions.cc b/riscv/riscv_a_instructions.cc
index f11dab2..f03565c 100644
--- a/riscv/riscv_a_instructions.cc
+++ b/riscv/riscv_a_instructions.cc
@@ -36,10 +36,10 @@
 
 // Helper function for the atomic memory operation semantic functions.
 template <typename T>
-static inline void AInstructionHelper(Instruction *inst, Operation op,
+static inline void AInstructionHelper(Instruction* inst, Operation op,
                                       bool has_store_value) {
-  auto *state = static_cast<RiscVState *>(inst->state());
-  auto *atomic = state->atomic_memory();
+  auto* state = static_cast<RiscVState*>(inst->state());
+  auto* atomic = state->atomic_memory();
   // If the atomic memory operation interface is nullptr, this is an illegal
   // instruction.
   if (atomic == nullptr) {
@@ -49,14 +49,14 @@
   }
   // Submit the memory operation.
   auto address = generic::GetInstructionSource<uint64_t>(inst, 0);
-  auto *db = inst->state()->db_factory()->Allocate<T>(1);
+  auto* db = inst->state()->db_factory()->Allocate<T>(1);
   db->set_latency(0);
   // Only access the operand if there is a value to be read.
   if (has_store_value) {
     db->template Set<T>(0, generic::GetInstructionSource<T>(inst, 1));
   }
   // This transfers ownership of db to context. Don't DecRef.
-  auto *context = new LoadContext(db);
+  auto* context = new LoadContext(db);
   auto status = state->atomic_memory()->PerformMemoryOp(address, op, db,
                                                         inst->child(), context);
   // If the operation is unimplemented, this is an illegal instruction.
@@ -68,112 +68,112 @@
   context->DecRef();
 }
 
-void ALrw(Instruction *instruction) {
+void ALrw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kLoadLinked,
                                /*has_store_value*/ false);
 }
 
-void AScw(Instruction *instruction) {
+void AScw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kStoreConditional,
                                /*has_store_value*/ true);
 }
 
-void AAmoswapw(Instruction *instruction) {
+void AAmoswapw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicSwap,
                                /*has_store_value*/ true);
 }
 
-void AAmoaddw(Instruction *instruction) {
+void AAmoaddw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicAdd,
                                /*has_store_value*/ true);
 }
 
-void AAmoandw(Instruction *instruction) {
+void AAmoandw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicAnd,
                                /*has_store_value*/ true);
 }
 
-void AAmoorw(Instruction *instruction) {
+void AAmoorw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicOr,
                                /*has_store_value*/ true);
 }
 
-void AAmoxorw(Instruction *instruction) {
+void AAmoxorw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicXor,
                                /*has_store_value*/ true);
 }
 
-void AAmomaxw(Instruction *instruction) {
+void AAmomaxw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicMax,
                                /*has_store_value*/ true);
 }
 
-void AAmomaxuw(Instruction *instruction) {
+void AAmomaxuw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicMaxu,
                                /*has_store_value*/ true);
 }
 
-void AAmominw(Instruction *instruction) {
+void AAmominw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicMin,
                                /*has_store_value*/ true);
 }
 
-void AAmominuw(Instruction *instruction) {
+void AAmominuw(Instruction* instruction) {
   AInstructionHelper<uint32_t>(instruction, Operation::kAtomicMinu,
                                /*has_store_value*/ true);
 }
 
-void ALrd(Instruction *instruction) {
+void ALrd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kLoadLinked,
                                /*has_store_value*/ false);
 }
 
-void AScd(Instruction *instruction) {
+void AScd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kStoreConditional,
                                /*has_store_value*/ true);
 }
 
-void AAmoswapd(Instruction *instruction) {
+void AAmoswapd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicSwap,
                                /*has_store_value*/ true);
 }
 
-void AAmoaddd(Instruction *instruction) {
+void AAmoaddd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicAdd,
                                /*has_store_value*/ true);
 }
 
-void AAmoandd(Instruction *instruction) {
+void AAmoandd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicAnd,
                                /*has_store_value*/ true);
 }
 
-void AAmoord(Instruction *instruction) {
+void AAmoord(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicOr,
                                /*has_store_value*/ true);
 }
 
-void AAmoxord(Instruction *instruction) {
+void AAmoxord(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicXor,
                                /*has_store_value*/ true);
 }
 
-void AAmomaxd(Instruction *instruction) {
+void AAmomaxd(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicMax,
                                /*has_store_value*/ true);
 }
 
-void AAmomaxud(Instruction *instruction) {
+void AAmomaxud(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicMaxu,
                                /*has_store_value*/ true);
 }
 
-void AAmomind(Instruction *instruction) {
+void AAmomind(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicMin,
                                /*has_store_value*/ true);
 }
 
-void AAmominud(Instruction *instruction) {
+void AAmominud(Instruction* instruction) {
   AInstructionHelper<uint64_t>(instruction, Operation::kAtomicMinu,
                                /*has_store_value*/ true);
 }
diff --git a/riscv/riscv_a_instructions.h b/riscv/riscv_a_instructions.h
index 79b7888..90ef309 100644
--- a/riscv/riscv_a_instructions.h
+++ b/riscv/riscv_a_instructions.h
@@ -32,46 +32,46 @@
 // memory to access, the second is the acquire bit, and the third, the release
 // bit. The instruction has a single destination operand which is the register
 // to write the result to.
-void ALrw(Instruction *instruction);
+void ALrw(Instruction* instruction);
 // The following instructions take 4 source operands and one destination
 // operand. The first source is the register holding the address of the
 // memory to access, the second is the register value used in the memory
 // operation (to store, swap, etc), the third is the acquire bit, and the
 // fourth, the release bit. The instruction has a single destination operand
 // which is the register to write the result to.
-void AScw(Instruction *instruction);
-void AAmoswapw(Instruction *instruction);
-void AAmoaddw(Instruction *instruction);
-void AAmoandw(Instruction *instruction);
-void AAmoorw(Instruction *instruction);
-void AAmoxorw(Instruction *instruction);
-void AAmomaxw(Instruction *instruction);
-void AAmomaxuw(Instruction *instruction);
-void AAmominw(Instruction *instruction);
-void AAmominuw(Instruction *instruction);
+void AScw(Instruction* instruction);
+void AAmoswapw(Instruction* instruction);
+void AAmoaddw(Instruction* instruction);
+void AAmoandw(Instruction* instruction);
+void AAmoorw(Instruction* instruction);
+void AAmoxorw(Instruction* instruction);
+void AAmomaxw(Instruction* instruction);
+void AAmomaxuw(Instruction* instruction);
+void AAmominw(Instruction* instruction);
+void AAmominuw(Instruction* instruction);
 
 // The following instruction takes 3 source operands and one destination
 // operand. The first source is the register holding the address of the
 // memory to access, the second is the acquire bit, and the third, the release
 // bit. The instruction has a single destination operand which is the register
 // to write the result to.
-void ALrd(Instruction *instruction);
+void ALrd(Instruction* instruction);
 // The following instructions take 4 source operands and one destination
 // operand. The first source is the register holding the address of the
 // memory to access, the second is the register value used in the memory
 // operation (to store, swap, etc), the third is the acquire bit, and the
 // fourth, the release bit. The instruction has a single destination operand
 // which is the register to write the result to.
-void AScd(Instruction *instruction);
-void AAmoswapd(Instruction *instruction);
-void AAmoaddd(Instruction *instruction);
-void AAmoandd(Instruction *instruction);
-void AAmoord(Instruction *instruction);
-void AAmoxord(Instruction *instruction);
-void AAmomaxd(Instruction *instruction);
-void AAmomaxud(Instruction *instruction);
-void AAmomind(Instruction *instruction);
-void AAmominud(Instruction *instruction);
+void AScd(Instruction* instruction);
+void AAmoswapd(Instruction* instruction);
+void AAmoaddd(Instruction* instruction);
+void AAmoandd(Instruction* instruction);
+void AAmoord(Instruction* instruction);
+void AAmoxord(Instruction* instruction);
+void AAmomaxd(Instruction* instruction);
+void AAmomaxud(Instruction* instruction);
+void AAmomind(Instruction* instruction);
+void AAmominud(Instruction* instruction);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_action_point_memory_interface.cc b/riscv/riscv_action_point_memory_interface.cc
index 01d9aa3..f85c93e 100644
--- a/riscv/riscv_action_point_memory_interface.cc
+++ b/riscv/riscv_action_point_memory_interface.cc
@@ -23,7 +23,7 @@
 namespace mpact::sim::riscv {
 
 RiscVActionPointMemoryInterface::RiscVActionPointMemoryInterface(
-    MemoryInterface *memory, InvalidateFcn invalidate_fcn)
+    MemoryInterface* memory, InvalidateFcn invalidate_fcn)
     : memory_(memory), invalidate_fcn_(std::move(invalidate_fcn)) {
   // Allocate two data buffers (32 and 16 bit) once, so we don't have to
   // do it every time we access breakpoint instructions.
@@ -34,7 +34,7 @@
 RiscVActionPointMemoryInterface::~RiscVActionPointMemoryInterface() {
   if (db4_ != nullptr) db4_->DecRef();
   if (db2_ != nullptr) db2_->DecRef();
-  for (auto &[unused, inst_info_ptr] : instruction_map_) {
+  for (auto& [unused, inst_info_ptr] : instruction_map_) {
     delete inst_info_ptr;
   }
   instruction_map_.clear();
@@ -74,7 +74,7 @@
           "Invalid instruction size: ", size, " at ", absl::Hex(address)));
     }
     if (size == 2) instruction_word &= 0xffff;
-    auto *inst_info = new InstructionInfo;
+    auto* inst_info = new InstructionInfo;
     inst_info->og_instruction_word = instruction_word;
     inst_info->size = size;
     it = instruction_map_.insert(std::make_pair(address, inst_info)).first;
diff --git a/riscv/riscv_action_point_memory_interface.h b/riscv/riscv_action_point_memory_interface.h
index 78bbdfe..87ca22c 100644
--- a/riscv/riscv_action_point_memory_interface.h
+++ b/riscv/riscv_action_point_memory_interface.h
@@ -46,7 +46,7 @@
   // The constructor takes a pointer to the memory interface through which
   // instructions can be read and written,and a function to invalidate the
   // decoding of an instruction.
-  RiscVActionPointMemoryInterface(MemoryInterface *memory,
+  RiscVActionPointMemoryInterface(MemoryInterface* memory,
                                   InvalidateFcn invalidate_fcn);
   ~RiscVActionPointMemoryInterface() override;
 
@@ -70,12 +70,12 @@
   // Data buffer factory and two data buffer pointers to use for reading and
   // writing instructions.
   DataBufferFactory db_factory_;
-  DataBuffer *db4_ = nullptr;
-  DataBuffer *db2_ = nullptr;
+  DataBuffer* db4_ = nullptr;
+  DataBuffer* db2_ = nullptr;
   // Maps from address to information about the instruction.
-  absl::flat_hash_map<uint64_t, InstructionInfo *> instruction_map_;
+  absl::flat_hash_map<uint64_t, InstructionInfo*> instruction_map_;
   // Interface to program memory.
-  MemoryInterface *memory_;
+  MemoryInterface* memory_;
   // Function to be called to invalidate any stored decoding of an instruction.
   InvalidateFcn invalidate_fcn_;
 };
diff --git a/riscv/riscv_arm_semihost.cc b/riscv/riscv_arm_semihost.cc
index 1d1523e..d950652 100644
--- a/riscv/riscv_arm_semihost.cc
+++ b/riscv/riscv_arm_semihost.cc
@@ -38,8 +38,8 @@
 namespace riscv {
 
 RiscVArmSemihost::RiscVArmSemihost(BitWidth bit_width,
-                                   util::MemoryInterface *i_memory_if,
-                                   util::MemoryInterface *d_memory_if)
+                                   util::MemoryInterface* i_memory_if,
+                                   util::MemoryInterface* d_memory_if)
     : i_memory_if_(i_memory_if),
       d_memory_if_(d_memory_if),
       // Put the functions that implement the different semihosting operations
@@ -102,7 +102,7 @@
   db4_->DecRef();
 }
 
-bool RiscVArmSemihost::IsSemihostingCall(const Instruction *inst) {
+bool RiscVArmSemihost::IsSemihostingCall(const Instruction* inst) {
   if (inst == nullptr) return false;
   // Load the instruction words on either side of the ebreak instruction.
   uint64_t address = inst->address() - 4;
@@ -116,15 +116,15 @@
   return true;
 }
 
-void RiscVArmSemihost::OnEBreak(const Instruction *inst) {
+void RiscVArmSemihost::OnEBreak(const Instruction* inst) {
   if (!IsSemihostingCall(inst)) return;
 
   // Handle the semihosting call.
   auto registers = inst->state()->registers();
   auto iter = registers->find(kA0Name);
-  auto *a0 = iter == registers->end() ? nullptr : iter->second;
+  auto* a0 = iter == registers->end() ? nullptr : iter->second;
   iter = registers->find(kA1Name);
-  auto *a1 = iter == registers->end() ? nullptr : iter->second;
+  auto* a1 = iter == registers->end() ? nullptr : iter->second;
   if ((a0 == nullptr) || (a1 == nullptr)) {
     LOG(ERROR) << "Failed to fetch semihost argument registers";
   }
@@ -170,7 +170,7 @@
   }
 }
 
-absl::Status RiscVArmSemihost::SysClose(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysClose(uint64_t parameter, uint64_t* ret_val) {
   // Load the file descriptor from the parameter block.
   d_memory_if_->Load(parameter, db1_, nullptr, nullptr);
   int target_fd = is_32_bit_ ? static_cast<int>(db1_->Get<uint32_t>(0))
@@ -201,26 +201,26 @@
 }
 
 // Currently not implemented, will implement once there is need for it.
-absl::Status RiscVArmSemihost::SysClock(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysClock(uint64_t parameter, uint64_t* ret_val) {
   return absl::UnimplementedError("SysClock not implemented");
   // TODO: Complete implementation.
 }
 
 // Currently not implemented, will implement once there is need for it.
 absl::Status RiscVArmSemihost::SysElapsed(uint64_t parameter,
-                                          uint64_t *ret_val) {
+                                          uint64_t* ret_val) {
   return absl::UnimplementedError("SysElapsed not implemented");
   // TODO: Complete implementation.
 }
 
 // Return the value of the simulated errno.
-absl::Status RiscVArmSemihost::SysErrno(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysErrno(uint64_t parameter, uint64_t* ret_val) {
   *ret_val = sys_errno_;
   return absl::OkStatus();
 }
 
 // Exception notification. The program should be terminated.
-absl::Status RiscVArmSemihost::SysException(uint64_t parameter, uint64_t *) {
+absl::Status RiscVArmSemihost::SysException(uint64_t parameter, uint64_t*) {
   // In gcc it seems like the parameter value is passed in the parameter
   // register for RV32, but stored in memory, and then a pointer passed in the
   // parameter register for RV64. A bit odd...
@@ -247,7 +247,7 @@
 }
 
 // Return the length of a file given by the file descriptor.
-absl::Status RiscVArmSemihost::SysFlen(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysFlen(uint64_t parameter, uint64_t* ret_val) {
   // Load the targeted file descriptor.
   d_memory_if_->Load(parameter, db1_, nullptr, nullptr);
   int target_fd = is_32_bit_ ? static_cast<int>(db1_->Get<uint32_t>(0))
@@ -273,7 +273,7 @@
 
 // Currently unimplemented. Will implement if there is a demand.
 absl::Status RiscVArmSemihost::SysGetCmdline(uint64_t parameter,
-                                             uint64_t *ret_val) {
+                                             uint64_t* ret_val) {
   d_memory_if_->Load(parameter, db2_, nullptr, nullptr);
   uint64_t buffer_address = is_32_bit_
                                 ? static_cast<uint64_t>(db2_->Get<uint32_t>(0))
@@ -284,7 +284,7 @@
     *ret_val = -1ULL;
     return absl::OkStatus();
   }
-  auto *db = db_factory_.Allocate<uint8_t>(cmd_line_.size() + 1);
+  auto* db = db_factory_.Allocate<uint8_t>(cmd_line_.size() + 1);
   std::memcpy(db->raw_ptr(), cmd_line_.c_str(), cmd_line_.size());
   db->Set<uint8_t>(cmd_line_.size(), 0);
   d_memory_if_->Store(buffer_address, db);
@@ -301,13 +301,13 @@
 
 // Returns 0 information indicating that the call doesn't provide this info.
 absl::Status RiscVArmSemihost::SysHeapInfo(uint64_t parameter,
-                                           uint64_t *ret_val) {
+                                           uint64_t* ret_val) {
   d_memory_if_->Load(parameter, db1_, nullptr, nullptr);
   uint64_t block_address = is_32_bit_
                                ? static_cast<int>(db1_->Get<uint32_t>(0))
                                : static_cast<int>(db1_->Get<uint64_t>(0));
   // Return all zeros.
-  auto *db = db_factory_.Allocate<uint32_t>(4);
+  auto* db = db_factory_.Allocate<uint32_t>(4);
   d_memory_if_->Load(block_address, db, nullptr, nullptr);
   db->Set<uint32_t>(0, 0);
   db->Set<uint32_t>(1, 0);
@@ -321,13 +321,13 @@
 // This function is not implemented for now. Will look into it if there is
 // demand.
 absl::Status RiscVArmSemihost::SysIsError(uint64_t parameter,
-                                          uint64_t *ret_val) {
+                                          uint64_t* ret_val) {
   return absl::UnimplementedError("SysGetCmdline not implemented");
   // TODO: Complete implementation.
 }
 
 // Check if the fd is a tty.
-absl::Status RiscVArmSemihost::SysIsTty(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysIsTty(uint64_t parameter, uint64_t* ret_val) {
   // Load the target file descriptor.
   d_memory_if_->Load(parameter, db1_, nullptr, nullptr);
   int target_fd = is_32_bit_ ? static_cast<int>(db1_->Get<uint32_t>(0))
@@ -349,7 +349,7 @@
 }
 
 // Open a file, return the file descriptor if successful.
-absl::Status RiscVArmSemihost::SysOpen(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysOpen(uint64_t parameter, uint64_t* ret_val) {
   // Load the parameter block consisiting of pointer to a string, the file open
   // mode, and the length of the string.
   d_memory_if_->Load(parameter, db3_, nullptr, nullptr);
@@ -365,10 +365,9 @@
   // a string variable with it.
   std::string file_name;
   if (file_name_len > 0) {
-    auto *db_c = db_factory_.Allocate<uint8_t>(file_name_len);
+    auto* db_c = db_factory_.Allocate<uint8_t>(file_name_len);
     d_memory_if_->Load(string_address, db_c, nullptr, nullptr);
-    file_name =
-        std::string(static_cast<char *>(db_c->raw_ptr()), file_name_len);
+    file_name = std::string(static_cast<char*>(db_c->raw_ptr()), file_name_len);
     db_c->DecRef();
   }
   // If the name is ":tt" then it's either cin or cout depending on the mode.
@@ -402,7 +401,7 @@
   return absl::OkStatus();
 }
 
-absl::Status RiscVArmSemihost::SysRead(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysRead(uint64_t parameter, uint64_t* ret_val) {
   // Load the parameter block, consisting of the target file descriptor, the
   // target buffer address, and buffer length.
   d_memory_if_->Load(parameter, db3_, nullptr, nullptr);
@@ -421,7 +420,7 @@
   }
   auto host_fd = iter->second;
   // Allocate a data buffer sufficient for the target buffer length.
-  auto *db = db_factory_.Allocate<uint8_t>(length);
+  auto* db = db_factory_.Allocate<uint8_t>(length);
   // Read from the file/
   int res = read(host_fd, db->raw_ptr(), length);
   *ret_val = static_cast<uint64_t>(res);
@@ -436,25 +435,25 @@
 }
 
 // Read a byte from the debug console. This is not implemented for now.
-absl::Status RiscVArmSemihost::SysReadc(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysReadc(uint64_t parameter, uint64_t* ret_val) {
   return absl::UnimplementedError("SysReadc not implemented");
   // TODO: Complete implementation.
 }
 
 // Remove a file from the host file system. This will not be implemented.
 absl::Status RiscVArmSemihost::SysRemove(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   return absl::UnimplementedError("SysRemove not implemented");
 }
 
 // Rename a file in the host file system. This will not be implemented.
 absl::Status RiscVArmSemihost::SysRename(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   return absl::UnimplementedError("SysRename not implemented");
 }
 
 // Seek in the file specified by the target file descriptor.
-absl::Status RiscVArmSemihost::SysSeek(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysSeek(uint64_t parameter, uint64_t* ret_val) {
   // Load the parameters consisting of the target fd and the desired seek
   // offset.
   d_memory_if_->Load(parameter, db2_, nullptr, nullptr);
@@ -483,27 +482,27 @@
 
 // Execute a command in the shell of the host. This will not be implemented.
 absl::Status RiscVArmSemihost::SysSystem(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   return absl::UnimplementedError("SysSystem not implemented");
 }
 
 // Return the system tick frequency. For now just return -1 to indicate that
 // this call is not fully supported.
 absl::Status RiscVArmSemihost::SysTickFreq(uint64_t parameter,
-                                           uint64_t *ret_val) {
+                                           uint64_t* ret_val) {
   *ret_val = -1ULL;
   return absl::OkStatus();
 }
 
 // Return unix time in seconds.
-absl::Status RiscVArmSemihost::SysTime(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysTime(uint64_t parameter, uint64_t* ret_val) {
   *ret_val = time(nullptr);
   return absl::OkStatus();
 }
 
 // Return a temporary file name.
 absl::Status RiscVArmSemihost::SysTmpnam(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   // Load parameters consisting of a pointer to a buffer, an int (0-255) that
   // is a target identifier for this filename, and the length of the buffer.
   d_memory_if_->Load(parameter, db3_, nullptr, nullptr);
@@ -526,14 +525,14 @@
   }
   // Allocate a data buffer and call tmpnam, then write the name to the buffer.
   auto tmpnam_db = db_factory_.Allocate<uint8_t>(length);
-  tmpnam(static_cast<char *>(tmpnam_db->raw_ptr()));
+  tmpnam(static_cast<char*>(tmpnam_db->raw_ptr()));
   d_memory_if_->Store(buffer_address, tmpnam_db);
   tmpnam_db->DecRef();
   return absl::OkStatus();
 }
 
 // Write data to a file.
-absl::Status RiscVArmSemihost::SysWrite(uint64_t parameter, uint64_t *ret_val) {
+absl::Status RiscVArmSemihost::SysWrite(uint64_t parameter, uint64_t* ret_val) {
   // Load parameters consisting of target fd, target buffer address, and
   // length.
   d_memory_if_->Load(parameter, db3_, nullptr, nullptr);
@@ -553,7 +552,7 @@
   auto host_fd = iter->second;
   // Allocate the data buffer necessary to read the data to be written to the
   // file.
-  auto *db = db_factory_.Allocate<uint8_t>(length);
+  auto* db = db_factory_.Allocate<uint8_t>(length);
   d_memory_if_->Load(buffer_address, db, nullptr, nullptr);
   // Write the data to the file.
   int res = write(host_fd, db->raw_ptr(), length);
@@ -568,14 +567,14 @@
 
 // Write a byte to the degbug console. This is not implemented for now.
 absl::Status RiscVArmSemihost::SysWritec(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   return absl::UnimplementedError("SysWritec not implemented");
 }
 
 // Write a null terminated string to the debug console. This is not implemented
 // for now.
 absl::Status RiscVArmSemihost::SysWrite0(uint64_t parameter,
-                                         uint64_t *ret_val) {
+                                         uint64_t* ret_val) {
   return absl::UnimplementedError("SysWrite0 not implemented");
 }
 
diff --git a/riscv/riscv_arm_semihost.h b/riscv/riscv_arm_semihost.h
index 39c3bc0..cbe30fd 100644
--- a/riscv/riscv_arm_semihost.h
+++ b/riscv/riscv_arm_semihost.h
@@ -61,21 +61,21 @@
   static constexpr char kA1Name[] = "x11";  // Also known as "a1".
 
   // Constructor/destructor.
-  RiscVArmSemihost(BitWidth bit_width, util::MemoryInterface *i_memory_if,
-                   util::MemoryInterface *d_memory_if);
+  RiscVArmSemihost(BitWidth bit_width, util::MemoryInterface* i_memory_if,
+                   util::MemoryInterface* d_memory_if);
   RiscVArmSemihost() = delete;
-  RiscVArmSemihost(const RiscVArmSemihost &) = delete;
+  RiscVArmSemihost(const RiscVArmSemihost&) = delete;
   ~RiscVArmSemihost();
 
   // If the instruction is a semihosting call, execute the requested function.
-  void OnEBreak(const Instruction *inst);
+  void OnEBreak(const Instruction* inst);
   // Return true if the instruction is a semihosting call.
-  bool IsSemihostingCall(const Instruction *inst);
+  bool IsSemihostingCall(const Instruction* inst);
   // Set the command line string.
-  void SetCmdLine(const std::vector<char *> &argv) {
+  void SetCmdLine(const std::vector<char*>& argv) {
     cmd_line_.clear();
     std::string sep;
-    for (const auto &arg : argv) {
+    for (const auto& arg : argv) {
       absl::StrAppend(&cmd_line_, sep, arg);
       sep = " ";
     }
@@ -88,7 +88,7 @@
   }
 
  private:
-  using SemihostOperation = std::function<absl::Status(uint64_t, uint64_t *)>;
+  using SemihostOperation = std::function<absl::Status(uint64_t, uint64_t*)>;
 
   std::function<void()> exit_callback_;
   std::function<void(uint64_t)> exception_callback_;
@@ -122,29 +122,29 @@
   static constexpr int kSysWrite0 = 0x04;
 
   // Functions that implement the semihosting operations.
-  absl::Status SysClose(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysClock(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysElapsed(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysErrno(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysException(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysFlen(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysGetCmdline(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysHeapInfo(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysIsError(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysIsTty(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysOpen(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysRead(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysReadc(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysRemove(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysRename(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysSeek(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysSystem(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysTickFreq(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysTime(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysTmpnam(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysWrite(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysWritec(uint64_t parameter, uint64_t *ret_val);
-  absl::Status SysWrite0(uint64_t parameter, uint64_t *ret_val);
+  absl::Status SysClose(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysClock(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysElapsed(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysErrno(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysException(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysFlen(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysGetCmdline(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysHeapInfo(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysIsError(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysIsTty(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysOpen(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysRead(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysReadc(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysRemove(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysRename(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysSeek(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysSystem(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysTickFreq(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysTime(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysTmpnam(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysWrite(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysWritec(uint64_t parameter, uint64_t* ret_val);
+  absl::Status SysWrite0(uint64_t parameter, uint64_t* ret_val);
 
   bool is_32_bit_;
   int sys_errno_ = 0;
@@ -152,14 +152,14 @@
   // Data buffers used by some of the operations. Giving them lifetime of the
   // semihosting instance saves some on allocating and freeing them for each
   // operation.
-  generic::DataBuffer *db_inst_;  // Instruction word(s) data buffer.
-  generic::DataBuffer *db1_;      // 1 word data buffer.
-  generic::DataBuffer *db2_;      // 2 word data buffer.
-  generic::DataBuffer *db3_;      // 3 word data buffer.
-  generic::DataBuffer *db4_;      // 4 word data buffer.
+  generic::DataBuffer* db_inst_;  // Instruction word(s) data buffer.
+  generic::DataBuffer* db1_;      // 1 word data buffer.
+  generic::DataBuffer* db2_;      // 2 word data buffer.
+  generic::DataBuffer* db3_;      // 3 word data buffer.
+  generic::DataBuffer* db4_;      // 4 word data buffer.
   // Memory interfaces to use to access instruction and data memory.
-  util::MemoryInterface *i_memory_if_;
-  util::MemoryInterface *d_memory_if_;
+  util::MemoryInterface* i_memory_if_;
+  util::MemoryInterface* d_memory_if_;
   // Map from opcode to semihosting function.
   absl::flat_hash_map<uint64_t, SemihostOperation> semihost_operations_;
   // Map of target file descriptors to host file descriptors.
diff --git a/riscv/riscv_bin_setters.cc b/riscv/riscv_bin_setters.cc
index 6d6684d..721c345 100644
--- a/riscv/riscv_bin_setters.cc
+++ b/riscv/riscv_bin_setters.cc
@@ -53,8 +53,8 @@
     "^\\s*(%[a-zA-Z0-9_]+)?\\s*\\(?([a-zA-Z_][^)]+)\\)?\\s*$");
 
 absl::Status RelocateAddiIImm12(uint64_t address, absl::string_view text,
-                                ResolverInterface *resolver,
-                                std::vector<RelocationInfo> &relocations) {
+                                ResolverInterface* resolver,
+                                std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
@@ -74,8 +74,8 @@
 }
 
 absl::Status RelocateJJImm20(uint64_t address, absl::string_view text,
-                             ResolverInterface *resolver,
-                             std::vector<RelocationInfo> &relocations) {
+                             ResolverInterface* resolver,
+                             std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
@@ -84,8 +84,8 @@
 }
 
 absl::Status RelocateJrJImm12(uint64_t address, absl::string_view text,
-                              ResolverInterface *resolver,
-                              std::vector<RelocationInfo> &relocations) {
+                              ResolverInterface* resolver,
+                              std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
@@ -96,8 +96,8 @@
 }
 
 absl::Status RelocateLuiUImm20(uint64_t address, absl::string_view text,
-                               ResolverInterface *resolver,
-                               std::vector<RelocationInfo> &relocations) {
+                               ResolverInterface* resolver,
+                               std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
@@ -106,8 +106,8 @@
 }
 
 absl::Status RelocateSdSImm12(uint64_t address, absl::string_view text,
-                              ResolverInterface *resolver,
-                              std::vector<RelocationInfo> &relocations) {
+                              ResolverInterface* resolver,
+                              std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
@@ -127,8 +127,8 @@
 }
 
 absl::Status RelocateAuipcUImm20(uint64_t address, absl::string_view text,
-                                 ResolverInterface *resolver,
-                                 std::vector<RelocationInfo> &relocations) {
+                                 ResolverInterface* resolver,
+                                 std::vector<RelocationInfo>& relocations) {
   std::string relo;
   std::string sym;
   if (!RE2::FullMatch(text, *kSymRe, &relo, &sym)) return absl::OkStatus();
diff --git a/riscv/riscv_bin_setters.h b/riscv/riscv_bin_setters.h
index 4eb312c..7c4eae7 100644
--- a/riscv/riscv_bin_setters.h
+++ b/riscv/riscv_bin_setters.h
@@ -476,7 +476,7 @@
 // functions, e.g., %hi(<symbol name>).
 template <typename T>
 absl::StatusOr<T> SimpleTextToInt(absl::string_view op_text,
-                                  ResolverInterface *resolver) {
+                                  ResolverInterface* resolver) {
   T value;
   static RE2 hex_re("^\\s*0x([0-9a-fA-F]+)\\s*$");
   static RE2 dec_re("^\\s*(-?[0-9]+)\\s*$");
@@ -518,10 +518,10 @@
 
 // This function adds the bin setters for the source operands to the given map.
 template <typename Enum, typename Map, typename Encoder>
-void AddRiscvSourceOpBinSetters(Map &map) {
+void AddRiscvSourceOpBinSetters(Map& map) {
   Insert(map, *Enum::kAAq,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map = {{"", 0}, {".aq", 1}};
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -532,7 +532,7 @@
          });
   Insert(map, *Enum::kARl,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map = {{"", 0}, {".rl", 1}};
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -543,7 +543,7 @@
          });
   Insert(map, *Enum::kBImm12,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            uint32_t delta = res.value() - address;
@@ -551,7 +551,7 @@
          });
   Insert(map, *Enum::kC3drs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -562,7 +562,7 @@
          });
   Insert(map, *Enum::kC3rs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -573,7 +573,7 @@
          });
   Insert(map, *Enum::kC3rs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -584,14 +584,14 @@
          });
   Insert(map, *Enum::kCSRUimm5,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::IType::InsertIUimm5(res.value(), 0ULL);
          });
   Insert(map, *Enum::kCdrs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -602,7 +602,7 @@
          });
   Insert(map, *Enum::kCrs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -613,7 +613,7 @@
          });
   Insert(map, *Enum::kCrs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -624,7 +624,7 @@
          });
   Insert(map, *Enum::kCsr,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCsrRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -635,7 +635,7 @@
          });
   Insert(map, *Enum::kDrs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -646,7 +646,7 @@
          });
   Insert(map, *Enum::kDrs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -657,7 +657,7 @@
          });
   Insert(map, *Enum::kDrs3,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -668,7 +668,7 @@
          });
   Insert(map, *Enum::kFrs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kFRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -679,7 +679,7 @@
          });
   Insert(map, *Enum::kFrs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kFRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -690,7 +690,7 @@
          });
   Insert(map, *Enum::kFrs3,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kFRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -701,7 +701,7 @@
          });
   Insert(map, *Enum::kICbImm8,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            uint32_t delta = res.value() - address;
@@ -709,56 +709,56 @@
          });
   Insert(map, *Enum::kICiImm6,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertImm6(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiImm612,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertImm18(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiImm6x16,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertCiImm10(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiUimm6,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertUimm6(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiUimm6x4,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertCiImmW(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiUimm6x8,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CI::InsertCiImmD(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICiwUimm8x4,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CIW::InsertCiwImm10(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICjImm11,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            auto delta = res.value() - address;
@@ -766,63 +766,63 @@
          });
   Insert(map, *Enum::kIClUimm5x4,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CL::InsertClImmW(res.value(), 0ULL);
          });
   Insert(map, *Enum::kIClUimm5x8,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CL::InsertClImmD(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICssUimm6x4,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CS::InsertCsImmW(res.value(), 0ULL);
          });
   Insert(map, *Enum::kICssUimm6x8,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::CS::InsertCsImmD(res.value(), 0ULL);
          });
   Insert(map, *Enum::kIImm12,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::IType::InsertImm12(res.value(), 0ULL);
          });
   Insert(map, *Enum::kIUimm5,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::RType::InsertRUimm5(res.value(), 0ULL);
          });
   Insert(map, *Enum::kIUimm6,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::RSType::InsertRUimm6(res.value(), 0ULL);
          });
   Insert(map, *Enum::kJImm12,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::IType::InsertImm12(res.value(), 0ULL);
          });
   Insert(map, *Enum::kJImm20,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<int32_t>(text, resolver);
            if (!res.ok()) return res.status();
            uint32_t delta = res.value() - address;
@@ -831,14 +831,14 @@
          });
   Insert(map, *Enum::kPred,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::Fence::InsertPred(res.value(), 0ULL);
          });
   Insert(map, *Enum::kRd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -849,7 +849,7 @@
          });
   Insert(map, *Enum::kRm,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -860,7 +860,7 @@
          });
   Insert(map, *Enum::kRs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -871,7 +871,7 @@
          });
   Insert(map, *Enum::kRs2,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -882,21 +882,21 @@
          });
   Insert(map, *Enum::kSImm12,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::SType::InsertSImm(res.value(), 0ULL);
          });
   Insert(map, *Enum::kSucc,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::Fence::InsertSucc(res.value(), 0ULL);
          });
   Insert(map, *Enum::kUImm20,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            auto res = SimpleTextToInt<uint32_t>(text, resolver);
            if (!res.ok()) return res.status();
            return Encoder::UType::InsertUImm(res.value(), 0ULL);
@@ -906,10 +906,10 @@
 // This function adds the destination operand setters for the RiscV ISA to the
 // given map.
 template <typename Enum, typename Map, typename Encoder>
-void AddRiscvDestOpBinSetters(Map &map) {
+void AddRiscvDestOpBinSetters(Map& map) {
   Insert(map, *Enum::kC3drd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -920,7 +920,7 @@
          });
   Insert(map, *Enum::kC3rd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -931,7 +931,7 @@
          });
   Insert(map, *Enum::kC3rs1,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -942,7 +942,7 @@
          });
   Insert(map, *Enum::kCsr,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kCsrRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -953,7 +953,7 @@
          });
   Insert(map, *Enum::kDrd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kDRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -964,7 +964,7 @@
          });
   Insert(map, *Enum::kFrd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kFRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -975,7 +975,7 @@
          });
   Insert(map, *Enum::kRd,
          [](uint64_t address, absl::string_view text,
-            ResolverInterface *resolver) -> absl::StatusOr<uint64_t> {
+            ResolverInterface* resolver) -> absl::StatusOr<uint64_t> {
            static ValueMap map(kRegisterList);
            auto iter = map.find(text);
            if (iter == map.end()) {
@@ -991,23 +991,23 @@
 namespace internal {
 
 absl::Status RelocateAddiIImm12(uint64_t address, absl::string_view text,
-                                ResolverInterface *resolver,
-                                std::vector<RelocationInfo> &relocations);
+                                ResolverInterface* resolver,
+                                std::vector<RelocationInfo>& relocations);
 absl::Status RelocateJJImm20(uint64_t address, absl::string_view text,
-                             ResolverInterface *resolver,
-                             std::vector<RelocationInfo> &relocations);
+                             ResolverInterface* resolver,
+                             std::vector<RelocationInfo>& relocations);
 absl::Status RelocateJrJImm12(uint64_t address, absl::string_view text,
-                              ResolverInterface *resolver,
-                              std::vector<RelocationInfo> &relocations);
+                              ResolverInterface* resolver,
+                              std::vector<RelocationInfo>& relocations);
 absl::Status RelocateLuiUImm20(uint64_t address, absl::string_view text,
-                               ResolverInterface *resolver,
-                               std::vector<RelocationInfo> &relocations);
+                               ResolverInterface* resolver,
+                               std::vector<RelocationInfo>& relocations);
 absl::Status RelocateSdSImm12(uint64_t address, absl::string_view text,
-                              ResolverInterface *resolver,
-                              std::vector<RelocationInfo> &relocations);
+                              ResolverInterface* resolver,
+                              std::vector<RelocationInfo>& relocations);
 absl::Status RelocateAuipcUImm20(uint64_t address, absl::string_view text,
-                                 ResolverInterface *resolver,
-                                 std::vector<RelocationInfo> &relocations);
+                                 ResolverInterface* resolver,
+                                 std::vector<RelocationInfo>& relocations);
 
 }  // namespace internal
 
@@ -1015,7 +1015,7 @@
 // the given map. Notice that the key in the map is the tuple consisting of the
 // opcode and the source operand enum values.
 template <typename OpcodeEnum, typename SourceOpEnum, typename Map>
-void AddRiscvSourceOpRelocationSetters(Map &map) {
+void AddRiscvSourceOpRelocationSetters(Map& map) {
   Insert(map, OpcodeEnum::kAddi, SourceOpEnum::kIImm12,
          internal::RelocateAddiIImm12);
   Insert(map, OpcodeEnum::kJal, SourceOpEnum::kJImm20,
diff --git a/riscv/riscv_bitmanip_instructions.cc b/riscv/riscv_bitmanip_instructions.cc
index dda17c2..5fe0fa0 100644
--- a/riscv/riscv_bitmanip_instructions.cc
+++ b/riscv/riscv_bitmanip_instructions.cc
@@ -39,105 +39,105 @@
 constexpr int kXlen = sizeof(UIntReg) * 8;
 
 // Add with shift.
-void RiscVShAdd(const Instruction *instruction) {
+void RiscVShAdd(const Instruction* instruction) {
   auto shift = generic::GetInstructionSource<UIntReg>(instruction, 2);
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [shift](UIntReg a, UIntReg b) { return b + (a << shift); });
 }
 
 // And not.
-void RiscVAndn(const Instruction *instruction) {
+void RiscVAndn(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a & ~b; });
 }
 
 // Or not.
-void RiscVOrn(const Instruction *instruction) {
+void RiscVOrn(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a | ~b; });
 }
 
 // Xnor.
-void RiscVXnor(const Instruction *instruction) {
+void RiscVXnor(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return ~(a ^ b); });
 }
 
-void RiscVNot(const generic::Instruction *instruction) {
+void RiscVNot(const generic::Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction,
                                                [](UIntReg a) { return ~a; });
 }
 
 // Count leading zeros.
-void RiscVClz(const Instruction *instruction) {
+void RiscVClz(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::countl_zero(a); });
 }
 
 // Count trailing zeros.
-void RiscVCtz(const Instruction *instruction) {
+void RiscVCtz(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::countr_zero(a); });
 }
 
 // Bit population count.
-void RiscVCpop(const Instruction *instruction) {
+void RiscVCpop(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::popcount(a); });
 }
 
 // Signed max.
-void RiscVMax(const Instruction *instruction) {
+void RiscVMax(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return std::max(a, b); });
 }
 
 // Unsigned max.
-void RiscVMaxu(const Instruction *instruction) {
+void RiscVMaxu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return std::max(a, b); });
 }
 
 // Signed min.
-void RiscVMin(const Instruction *instruction) {
+void RiscVMin(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return std::min(a, b); });
 }
 
 // Unsigned min.
-void RiscVMinu(const Instruction *instruction) {
+void RiscVMinu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return std::min(a, b); });
 }
 
 // Sign extend byte.
-void RiscVSextB(const Instruction *instruction) {
+void RiscVSextB(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, IntReg, int8_t>(
       instruction, [](int8_t a) -> IntReg { return static_cast<IntReg>(a); });
 }
 
 // Sign extend half word.
-void RiscVSextH(const Instruction *instruction) {
+void RiscVSextH(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, IntReg, int16_t>(
       instruction, [](int16_t a) -> IntReg { return static_cast<IntReg>(a); });
 }
 
 // Zero extend half word.
-void RiscVZextH(const Instruction *instruction) {
+void RiscVZextH(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint16_t>(
       instruction,
       [](uint16_t a) -> UIntReg { return static_cast<UIntReg>(a); });
 }
 
 // Zero extend byte.
-void RiscVZextB(const Instruction *instruction) {
+void RiscVZextB(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint8_t>(
       instruction,
       [](uint8_t a) -> UIntReg { return static_cast<UIntReg>(a); });
 }
 
 // Rotate left.
-void RiscVRol(const Instruction *instruction) {
+void RiscVRol(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         int shamt = b & 0x1f;
@@ -147,7 +147,7 @@
 }
 
 // Rotate right.
-void RiscVRor(const Instruction *instruction) {
+void RiscVRor(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         int shamt = b & 0x1f;
@@ -157,7 +157,7 @@
 }
 
 // Or combine (byte wise).
-void RiscVOrcb(const Instruction *instruction) {
+void RiscVOrcb(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction, [](UIntReg a) {
     UIntReg mask = 0xff;
     UIntReg result = 0;
@@ -172,7 +172,7 @@
 }
 
 // Byte reverse.
-void RiscVRev8(const Instruction *instruction) {
+void RiscVRev8(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction, [](UIntReg a) {
     UIntReg result = 0;
     for (int i = 0; i < sizeof(UIntReg); i++) {
@@ -185,7 +185,7 @@
 }
 
 // Carry-less multiplication (using xor) - low 32 bits.
-void RiscVClmul(const Instruction *instruction) {
+void RiscVClmul(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -197,7 +197,7 @@
 }
 
 // Carry-less multiplication (using xor) - high 32 bits.
-void RiscVClmulh(const Instruction *instruction) {
+void RiscVClmulh(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -209,7 +209,7 @@
 }
 
 // Reverse carry-less multiplication (using xor).
-void RiscVClmulr(const Instruction *instruction) {
+void RiscVClmulr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -221,27 +221,27 @@
 }
 
 // Clear bit.
-void RiscVBclr(const Instruction *instruction) {
+void RiscVBclr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return a & ~(1U << (b & 0x1f)); });
 }
 
 // Extract bit.
-void RiscVBext(const Instruction *instruction) {
+void RiscVBext(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return (a >> (b & 0x1f)) & 0x1; });
 }
 
 // Invert bit.
-void RiscVBinv(const Instruction *instruction) {
+void RiscVBinv(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a ^ (1U << (b & 0x1f)); });
 }
 
 // Set bit.
-void RiscVBset(const Instruction *instruction) {
+void RiscVBset(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a | (1U << (b & 0x1f)); });
 }
@@ -256,20 +256,20 @@
 constexpr int kXlen = sizeof(UIntReg) * 8;
 
 // 64 + 32 bit unsigned addition.
-void RiscVAddUw(const Instruction *instruction) {
+void RiscVAddUw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return b + (a & 0xffff'ffffULL); });
 }
 
 // Add with shift.
-void RiscVShAdd(const Instruction *instruction) {
+void RiscVShAdd(const Instruction* instruction) {
   auto shift = generic::GetInstructionSource<UIntReg>(instruction, 2);
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [shift](UIntReg a, UIntReg b) { return b + (a << shift); });
 }
 
-void RiscVShAddUw(const Instruction *instruction) {
+void RiscVShAddUw(const Instruction* instruction) {
   auto shift = generic::GetInstructionSource<UIntReg>(instruction, 2);
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [shift](UIntReg a, UIntReg b) {
@@ -277,7 +277,7 @@
       });
 }
 
-void RiscVSlliUw(const Instruction *instruction) {
+void RiscVSlliUw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, uint32_t>(
       instruction, [](UIntReg a, uint32_t shift) -> UIntReg {
         return (a & 0xffff'ffffULL) << shift;
@@ -285,113 +285,113 @@
 }
 
 // And not.
-void RiscVAndn(const Instruction *instruction) {
+void RiscVAndn(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a & ~b; });
 }
 
 // Or not.
-void RiscVOrn(const Instruction *instruction) {
+void RiscVOrn(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a | ~b; });
 }
 
 // Xnor.
-void RiscVXnor(const Instruction *instruction) {  // hmm
+void RiscVXnor(const Instruction* instruction) {  // hmm
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return ~(a ^ b); });
 }
 
-void RiscVNot(const generic::Instruction *instruction) {
+void RiscVNot(const generic::Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction,
                                                [](UIntReg a) { return ~a; });
 }
 
 // Count leading zeros.
-void RiscVClz(const Instruction *instruction) {
+void RiscVClz(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::countl_zero(a); });
 }
 
-void RiscVClzw(const Instruction *instruction) {
+void RiscVClzw(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint32_t>(
       instruction, [](uint32_t a) -> UIntReg { return absl::countl_zero(a); });
 }
 
 // Count trailing zeros.
-void RiscVCtz(const Instruction *instruction) {
+void RiscVCtz(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::countr_zero(a); });
 }
 
-void RiscVCtzw(const Instruction *instruction) {
+void RiscVCtzw(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint32_t>(
       instruction, [](uint32_t a) -> UIntReg { return absl::countr_zero(a); });
 }
 
 // Bit population count.
-void RiscVCpop(const Instruction *instruction) {
+void RiscVCpop(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a) -> UIntReg { return absl::popcount(a); });
 }
 
-void RiscVCpopw(const Instruction *instruction) {
+void RiscVCpopw(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, uint32_t, uint32_t>(
       instruction, [](uint32_t a) -> UIntReg { return absl::popcount(a); });
 }
 
 // Signed max.
-void RiscVMax(const Instruction *instruction) {
+void RiscVMax(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return std::max(a, b); });
 }
 
 // Unsigned max.
-void RiscVMaxu(const Instruction *instruction) {
+void RiscVMaxu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return std::max(a, b); });
 }
 
 // Signed min.
-void RiscVMin(const Instruction *instruction) {
+void RiscVMin(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return std::min(a, b); });
 }
 
 // Unsigned min.
-void RiscVMinu(const Instruction *instruction) {
+void RiscVMinu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return std::min(a, b); });
 }
 
 // Sign extend byte.
-void RiscVSextB(const Instruction *instruction) {
+void RiscVSextB(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, IntReg, int8_t>(
       instruction, [](int8_t a) -> IntReg { return static_cast<IntReg>(a); });
 }
 
 // Sign extend half word.
-void RiscVSextH(const Instruction *instruction) {
+void RiscVSextH(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, IntReg, int16_t>(
       instruction, [](int16_t a) -> IntReg { return static_cast<IntReg>(a); });
 }
 
 // Zero extend half word.
-void RiscVZextH(const Instruction *instruction) {
+void RiscVZextH(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint16_t>(
       instruction,
       [](uint16_t a) -> UIntReg { return static_cast<UIntReg>(a); });
 }
 
 // Zero extend byte.
-void RiscVZextB(const Instruction *instruction) {
+void RiscVZextB(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, uint8_t>(
       instruction,
       [](uint8_t a) -> UIntReg { return static_cast<UIntReg>(a); });
 }
 
 // Rotate left.
-void RiscVRol(const Instruction *instruction) {
+void RiscVRol(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         int shamt = b & 0x3f;
@@ -400,7 +400,7 @@
       });
 }
 
-void RiscVRolw(const Instruction *instruction) {  // hmm
+void RiscVRolw(const Instruction* instruction) {  // hmm
   RiscVBinaryOp<RegisterType, IntReg, uint32_t>(
       instruction, [](uint32_t a, uint32_t b) {
         int shamt = b & 0x1f;
@@ -413,7 +413,7 @@
 }
 
 // Rotate right.
-void RiscVRor(const Instruction *instruction) {
+void RiscVRor(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         int shamt = b & 0x3f;
@@ -422,7 +422,7 @@
       });
 }
 
-void RiscVRorw(const Instruction *instruction) {
+void RiscVRorw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, uint32_t>(
       instruction, [](uint32_t a, uint32_t b) {
         int shamt = b & 0x1f;
@@ -435,7 +435,7 @@
 }
 
 // Or combine (byte wise).
-void RiscVOrcb(const Instruction *instruction) {
+void RiscVOrcb(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction, [](UIntReg a) {
     UIntReg mask = 0xffULL;
     UIntReg result = 0;
@@ -450,7 +450,7 @@
 }
 
 // Byte reverse.
-void RiscVRev8(const Instruction *instruction) {
+void RiscVRev8(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, UIntReg, UIntReg>(instruction, [](UIntReg a) {
     UIntReg result = 0;
     for (int i = 0; i < sizeof(UIntReg); i++) {
@@ -463,7 +463,7 @@
 }
 
 // Carry-less multiplication (using xor) - low 32 bits.
-void RiscVClmul(const Instruction *instruction) {
+void RiscVClmul(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -475,7 +475,7 @@
 }
 
 // Carry-less multiplication (using xor) - high 32 bits.
-void RiscVClmulh(const Instruction *instruction) {
+void RiscVClmulh(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -487,7 +487,7 @@
 }
 
 // Reverse carry-less multiplication (using xor).
-void RiscVClmulr(const Instruction *instruction) {
+void RiscVClmulr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) {
         UIntReg result = 0;
@@ -499,28 +499,28 @@
 }
 
 // Clear bit.
-void RiscVBclr(const Instruction *instruction) {
+void RiscVBclr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return a & ~(1ULL << (b & 0x3f)); });
 }
 
 // Extract bit.
-void RiscVBext(const Instruction *instruction) {
+void RiscVBext(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return (a >> (b & 0x3f)) & 0x1; });
 }
 
 // Invert bit.
-void RiscVBinv(const Instruction *instruction) {
+void RiscVBinv(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return a ^ (1ULL << (b & 0x3f)); });
 }
 
 // Set bit.
-void RiscVBset(const Instruction *instruction) {
+void RiscVBset(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction,
       [](UIntReg a, UIntReg b) { return a | (1ULL << (b & 0x3f)); });
diff --git a/riscv/riscv_bitmanip_instructions.h b/riscv/riscv_bitmanip_instructions.h
index 65d2d34..ea8dcf2 100644
--- a/riscv/riscv_bitmanip_instructions.h
+++ b/riscv/riscv_bitmanip_instructions.h
@@ -28,101 +28,101 @@
 
 // This function takes 3 source operands, rs1, rs2, a shift amount, and one
 // destination operand rd.
-void RiscVShAdd(const Instruction *instruction);
+void RiscVShAdd(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVAndn(const Instruction *instruction);
-void RiscVOrn(const Instruction *instruction);
-void RiscVXnor(const Instruction *instruction);
+void RiscVAndn(const Instruction* instruction);
+void RiscVOrn(const Instruction* instruction);
+void RiscVXnor(const Instruction* instruction);
 // Performs the bitwise negation of rs1 (this instruction is strictly not part
 // of Zbb, but part of the 16 bit Zcb extension). It is implemented here because
 // it fits with the other bitwise instructions.
-void RiscVNot(const generic::Instruction *instruction);
+void RiscVNot(const generic::Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVClz(const Instruction *instruction);
-void RiscVCtz(const Instruction *instruction);
-void RiscVCpop(const Instruction *instruction);
+void RiscVClz(const Instruction* instruction);
+void RiscVCtz(const Instruction* instruction);
+void RiscVCpop(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVMax(const Instruction *instruction);
-void RiscVMaxu(const Instruction *instruction);
-void RiscVMin(const Instruction *instruction);
-void RiscVMinu(const Instruction *instruction);
+void RiscVMax(const Instruction* instruction);
+void RiscVMaxu(const Instruction* instruction);
+void RiscVMin(const Instruction* instruction);
+void RiscVMinu(const Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVSextB(const Instruction *instruction);
-void RiscVSextH(const Instruction *instruction);
-void RiscVZextB(const Instruction *instruction);
-void RiscVZextH(const Instruction *instruction);
+void RiscVSextB(const Instruction* instruction);
+void RiscVSextH(const Instruction* instruction);
+void RiscVZextB(const Instruction* instruction);
+void RiscVZextH(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVRol(const Instruction *instruction);
-void RiscVRor(const Instruction *instruction);
+void RiscVRol(const Instruction* instruction);
+void RiscVRor(const Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVOrcb(const Instruction *instruction);
-void RiscVRev8(const Instruction *instruction);
+void RiscVOrcb(const Instruction* instruction);
+void RiscVRev8(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVClmul(const Instruction *instruction);
-void RiscVClmulh(const Instruction *instruction);
-void RiscVClmulr(const Instruction *instruction);
+void RiscVClmul(const Instruction* instruction);
+void RiscVClmulh(const Instruction* instruction);
+void RiscVClmulr(const Instruction* instruction);
 // The following functions take 2 source operands, rs1, rs2/imm, and one
 // destination operand rd.
-void RiscVBclr(const Instruction *instruction);
-void RiscVBext(const Instruction *instruction);
-void RiscVBinv(const Instruction *instruction);
-void RiscVBset(const Instruction *instruction);
+void RiscVBclr(const Instruction* instruction);
+void RiscVBext(const Instruction* instruction);
+void RiscVBinv(const Instruction* instruction);
+void RiscVBset(const Instruction* instruction);
 
 }  // namespace RV32
 
 namespace RV64 {
 // These functions take 3 source operands, rs1, rs2, a shift amount, and one
 // one destination operand rd.
-void RiscVAddUw(const Instruction *instruction);
-void RiscVShAdd(const Instruction *instruction);
-void RiscVShAddUw(const Instruction *instruction);
-void RiscVSlliUw(const Instruction *instruction);
+void RiscVAddUw(const Instruction* instruction);
+void RiscVShAdd(const Instruction* instruction);
+void RiscVShAddUw(const Instruction* instruction);
+void RiscVSlliUw(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination
 // operand rd.
-void RiscVAndn(const Instruction *instruction);
-void RiscVOrn(const Instruction *instruction);
-void RiscVXnor(const Instruction *instruction);
+void RiscVAndn(const Instruction* instruction);
+void RiscVOrn(const Instruction* instruction);
+void RiscVXnor(const Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVClz(const Instruction *instruction);
-void RiscVClzw(const Instruction *instruction);
-void RiscVCtz(const Instruction *instruction);
-void RiscVCtzw(const Instruction *instruction);
-void RiscVCpop(const Instruction *instruction);
-void RiscVCpopw(const Instruction *instruction);
+void RiscVClz(const Instruction* instruction);
+void RiscVClzw(const Instruction* instruction);
+void RiscVCtz(const Instruction* instruction);
+void RiscVCtzw(const Instruction* instruction);
+void RiscVCpop(const Instruction* instruction);
+void RiscVCpopw(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVMax(const Instruction *instruction);
-void RiscVMaxu(const Instruction *instruction);
-void RiscVMin(const Instruction *instruction);
-void RiscVMinu(const Instruction *instruction);
+void RiscVMax(const Instruction* instruction);
+void RiscVMaxu(const Instruction* instruction);
+void RiscVMin(const Instruction* instruction);
+void RiscVMinu(const Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVSextB(const Instruction *instruction);
-void RiscVSextH(const Instruction *instruction);
-void RiscVZextH(const Instruction *instruction);
+void RiscVSextB(const Instruction* instruction);
+void RiscVSextH(const Instruction* instruction);
+void RiscVZextH(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVRol(const Instruction *instruction);
-void RiscVRor(const Instruction *instruction);
-void RiscVRolw(const Instruction *instruction);
-void RiscVRorw(const Instruction *instruction);
+void RiscVRol(const Instruction* instruction);
+void RiscVRor(const Instruction* instruction);
+void RiscVRolw(const Instruction* instruction);
+void RiscVRorw(const Instruction* instruction);
 // These functions take 1 source operands, rs1, and one destination operand rd.
-void RiscVOrcb(const Instruction *instruction);
-void RiscVRev8(const Instruction *instruction);
+void RiscVOrcb(const Instruction* instruction);
+void RiscVRev8(const Instruction* instruction);
 // These function takes 2 source operands, rs1, rs2, and one destination operand
 // rd.
-void RiscVClmul(const Instruction *instruction);
-void RiscVClmulh(const Instruction *instruction);
-void RiscVClmulr(const Instruction *instruction);
+void RiscVClmul(const Instruction* instruction);
+void RiscVClmulh(const Instruction* instruction);
+void RiscVClmulr(const Instruction* instruction);
 // These functions take 2 source operands, rs1, rs2/imm, and one destination
 // operand rd.
-void RiscVBclr(const Instruction *instruction);
-void RiscVBext(const Instruction *instruction);
-void RiscVBinv(const Instruction *instruction);
-void RiscVBset(const Instruction *instruction);
+void RiscVBclr(const Instruction* instruction);
+void RiscVBext(const Instruction* instruction);
+void RiscVBinv(const Instruction* instruction);
+void RiscVBset(const Instruction* instruction);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_cli_forwarder.cc b/riscv/riscv_cli_forwarder.cc
index fd3708f..8b36ff0 100644
--- a/riscv/riscv_cli_forwarder.cc
+++ b/riscv/riscv_cli_forwarder.cc
@@ -35,7 +35,7 @@
 using HaltReasonValueType =
     ::mpact::sim::generic::CoreDebugInterface::HaltReasonValueType;
 
-RiscVCLIForwarder::RiscVCLIForwarder(RiscVRenodeCLITop *riscv_cli_top)
+RiscVCLIForwarder::RiscVCLIForwarder(RiscVRenodeCLITop* riscv_cli_top)
     : riscv_cli_top_(riscv_cli_top) {}
 
 // Forward the calls to the RiscVRenodeCLITop class - CLI methods.
@@ -100,28 +100,28 @@
 
 // Read/write the named registers.
 absl::StatusOr<uint64_t> RiscVCLIForwarder::ReadRegister(
-    const std::string &name) {
+    const std::string& name) {
   return riscv_cli_top_->CLIReadRegister(name);
 }
 
-absl::Status RiscVCLIForwarder::WriteRegister(const std::string &name,
+absl::Status RiscVCLIForwarder::WriteRegister(const std::string& name,
                                               uint64_t value) {
   return riscv_cli_top_->CLIWriteRegister(name, value);
 }
 
-absl::StatusOr<DataBuffer *> RiscVCLIForwarder::GetRegisterDataBuffer(
-    const std::string &name) {
+absl::StatusOr<DataBuffer*> RiscVCLIForwarder::GetRegisterDataBuffer(
+    const std::string& name) {
   return riscv_cli_top_->CLIGetRegisterDataBuffer(name);
 }
 
 // Read/write the buffers to memory.
 absl::StatusOr<size_t> RiscVCLIForwarder::ReadMemory(uint64_t address,
-                                                     void *buf, size_t length) {
+                                                     void* buf, size_t length) {
   return riscv_cli_top_->CLIReadMemory(address, buf, length);
 }
 
 absl::StatusOr<size_t> RiscVCLIForwarder::WriteMemory(uint64_t address,
-                                                      const void *buf,
+                                                      const void* buf,
                                                       size_t length) {
   return riscv_cli_top_->CLIWriteMemory(address, buf, length);
 }
@@ -142,7 +142,7 @@
   return riscv_cli_top_->CLIClearAllSwBreakpoints();
 }
 
-absl::StatusOr<Instruction *> RiscVCLIForwarder::GetInstruction(
+absl::StatusOr<Instruction*> RiscVCLIForwarder::GetInstruction(
     uint64_t address) {
   return riscv_cli_top_->CLIGetInstruction(address);
 }
diff --git a/riscv/riscv_cli_forwarder.h b/riscv/riscv_cli_forwarder.h
index eb934ed..0e4e7ce 100644
--- a/riscv/riscv_cli_forwarder.h
+++ b/riscv/riscv_cli_forwarder.h
@@ -42,10 +42,10 @@
 
 class RiscVCLIForwarder : public RiscVDebugInterface {
  public:
-  explicit RiscVCLIForwarder(RiscVRenodeCLITop *top);
+  explicit RiscVCLIForwarder(RiscVRenodeCLITop* top);
   RiscVCLIForwarder() = delete;
-  RiscVCLIForwarder(const CLIForwarder &) = delete;
-  RiscVCLIForwarder &operator=(const CLIForwarder &) = delete;
+  RiscVCLIForwarder(const CLIForwarder&) = delete;
+  RiscVCLIForwarder& operator=(const CLIForwarder&) = delete;
 
   // Set a data watchpoint for the given memory range. Any access matching the
   // given access type (load/store) will halt execution following the completion
@@ -84,8 +84,8 @@
   // Returns the reason for the most recent halt.
   absl::StatusOr<HaltReasonValueType> GetLastHaltReason() override;
 
-  absl::StatusOr<uint64_t> ReadRegister(const std::string &name) override;
-  absl::Status WriteRegister(const std::string &name, uint64_t value) override;
+  absl::StatusOr<uint64_t> ReadRegister(const std::string& name) override;
+  absl::Status WriteRegister(const std::string& name, uint64_t value) override;
 
   // Some registers, including vector registers, have values that exceed the
   // 64 bits supported in the Read/Write register API calls. This function
@@ -97,13 +97,13 @@
   // Note (2): In some cases, a register write may replace the DataBuffer
   // instance within a register so that any stored references to it become
   // stale.
-  absl::StatusOr<DataBuffer *> GetRegisterDataBuffer(
-      const std::string &name) override;
+  absl::StatusOr<DataBuffer*> GetRegisterDataBuffer(
+      const std::string& name) override;
 
   // Read/write the buffers to memory.
-  absl::StatusOr<size_t> ReadMemory(uint64_t address, void *buf,
+  absl::StatusOr<size_t> ReadMemory(uint64_t address, void* buf,
                                     size_t length) override;
-  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void *buf,
+  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void* buf,
                                      size_t length) override;
 
   // Test to see if there's a breakpoint at the given address.
@@ -115,12 +115,12 @@
   absl::Status ClearAllSwBreakpoints() override;
 
   // Return the instruction object for the instruction at the given address.
-  absl::StatusOr<Instruction *> GetInstruction(uint64_t address) override;
+  absl::StatusOr<Instruction*> GetInstruction(uint64_t address) override;
   // Return the string representation for the instruction at the given address.
   absl::StatusOr<std::string> GetDisassembly(uint64_t address) override;
 
  private:
-  RiscVRenodeCLITop *riscv_cli_top_;
+  RiscVRenodeCLITop* riscv_cli_top_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv_clint.cc b/riscv/riscv_clint.cc
index 258428a..5c68132 100644
--- a/riscv/riscv_clint.cc
+++ b/riscv/riscv_clint.cc
@@ -33,7 +33,7 @@
 using ::mpact::sim::generic::ReferenceCount;
 using EC = ::mpact::sim::riscv::ExceptionCode;
 
-RiscVClint::RiscVClint(int period, MipExternalWriteInterface *mip_interface)
+RiscVClint::RiscVClint(int period, MipExternalWriteInterface* mip_interface)
     : mip_interface_(mip_interface), period_(period) {
   // Set the initial values.
   SetValue(0);
@@ -54,7 +54,7 @@
 }
 
 // Called by the counter whenever its value is changed.
-void RiscVClint::SetValue(const uint64_t &val) {
+void RiscVClint::SetValue(const uint64_t& val) {
   update_counter_++;
   if (update_counter_ >= period_) {
     update_counter_ = 0;
@@ -68,8 +68,8 @@
 
 // Implementation of the memory load interface for reading memory mapped
 // registers.
-void RiscVClint::Load(uint64_t address, DataBuffer *db, Instruction *inst,
-                      ReferenceCount *context) {
+void RiscVClint::Load(uint64_t address, DataBuffer* db, Instruction* inst,
+                      ReferenceCount* context) {
   uint32_t offset = address & 0xffff;
   switch (db->size<uint8_t>()) {
     case 1:
@@ -108,15 +108,15 @@
 }
 
 // No support for vector loads.
-void RiscVClint::Load(DataBuffer *address_db, DataBuffer *mask_db, int el_size,
-                      DataBuffer *db, Instruction *inst,
-                      ReferenceCount *context) {
+void RiscVClint::Load(DataBuffer* address_db, DataBuffer* mask_db, int el_size,
+                      DataBuffer* db, Instruction* inst,
+                      ReferenceCount* context) {
   LOG(FATAL) << "RiscVClint does not support vector loads";
 }
 
 // Implementation of memory store interface to support writes to memory mapped
 // registers.
-void RiscVClint::Store(uint64_t address, DataBuffer *db) {
+void RiscVClint::Store(uint64_t address, DataBuffer* db) {
   uint32_t offset = address & 0xffff;
   switch (db->size<uint8_t>()) {
     case 1:
@@ -134,8 +134,8 @@
 }
 
 // No support for vector stores.
-void RiscVClint::Store(DataBuffer *address, DataBuffer *mask, int el_size,
-                       DataBuffer *db) {
+void RiscVClint::Store(DataBuffer* address, DataBuffer* mask, int el_size,
+                       DataBuffer* db) {
   LOG(FATAL) << "RiscVClint does not support vector stores";
 }
 
diff --git a/riscv/riscv_clint.h b/riscv/riscv_clint.h
index 9226c0b..a892e71 100644
--- a/riscv/riscv_clint.h
+++ b/riscv/riscv_clint.h
@@ -64,30 +64,30 @@
 class RiscVClint : public CounterValueSetInterface<uint64_t>,
                    public MemoryInterface {
  public:
-  RiscVClint(int period, MipExternalWriteInterface *mip_interface);
+  RiscVClint(int period, MipExternalWriteInterface* mip_interface);
   RiscVClint() = delete;
-  RiscVClint(const RiscVClint &) = delete;
-  RiscVClint &operator=(const RiscVClint &) = delete;
+  RiscVClint(const RiscVClint&) = delete;
+  RiscVClint& operator=(const RiscVClint&) = delete;
   ~RiscVClint() override = default;
   // Resets the interrupt controller.
   void Reset();
   // CounterValueSetInterface override. This is called when the value of the
   // bound counter is modified.
-  void SetValue(const uint64_t &val) override;
+  void SetValue(const uint64_t& val) override;
 
   // MemoryInterface overrides.
   // Non-vector load method.
-  void Load(uint64_t address, DataBuffer *db, Instruction *inst,
-            ReferenceCount *context) override;
+  void Load(uint64_t address, DataBuffer* db, Instruction* inst,
+            ReferenceCount* context) override;
   // Vector load method - this is stubbed out.
-  void Load(DataBuffer *address_db, DataBuffer *mask_db, int el_size,
-            DataBuffer *db, Instruction *inst,
-            ReferenceCount *context) override;
+  void Load(DataBuffer* address_db, DataBuffer* mask_db, int el_size,
+            DataBuffer* db, Instruction* inst,
+            ReferenceCount* context) override;
   // Non-vector store method.
-  void Store(uint64_t address, DataBuffer *db) override;
+  void Store(uint64_t address, DataBuffer* db) override;
   // Vector store method - this is stubbed out.
-  void Store(DataBuffer *address, DataBuffer *mask, int el_size,
-             DataBuffer *db) override;
+  void Store(DataBuffer* address, DataBuffer* mask, int el_size,
+             DataBuffer* db) override;
 
  private:
   // Helpers.
@@ -108,7 +108,7 @@
   uint64_t mtimecmp_ = 0;
   int mtip_ = 0;
   // mip write interface.
-  MipExternalWriteInterface *mip_interface_;
+  MipExternalWriteInterface* mip_interface_;
   // Counter for how many updates there have been in current period.
   int update_counter_ = 0;
   int period_ = 0;
diff --git a/riscv/riscv_csr.cc b/riscv/riscv_csr.cc
index b6c02de..92f7c03 100644
--- a/riscv/riscv_csr.cc
+++ b/riscv/riscv_csr.cc
@@ -28,7 +28,7 @@
 namespace sim {
 namespace riscv {
 
-void RiscVCsrWriteDb::SetDataBuffer(generic::DataBuffer *db) {
+void RiscVCsrWriteDb::SetDataBuffer(generic::DataBuffer* db) {
   auto db_size = db->size<uint8_t>();
   if (db_size == 4) {
     csr_->Write(db->Get<uint32_t>(0));
@@ -41,7 +41,7 @@
   LOG(ERROR) << "Attempted to write CSR with width != 32 or 64";
 }
 
-void RiscVCsrClearBitsDb::SetDataBuffer(generic::DataBuffer *db) {
+void RiscVCsrClearBitsDb::SetDataBuffer(generic::DataBuffer* db) {
   auto db_size = db->size<uint8_t>();
   if (db_size == 4) {
     csr_->ClearBits(db->Get<uint32_t>(0));
@@ -54,7 +54,7 @@
   LOG(ERROR) << "Attempted to clear CSR with width != 32 or 64";
 }
 
-void RiscVCsrSetBitsDb::SetDataBuffer(generic::DataBuffer *db) {
+void RiscVCsrSetBitsDb::SetDataBuffer(generic::DataBuffer* db) {
   auto db_size = db->size<uint8_t>();
   if (db_size == 4) {
     csr_->SetBits(db->Get<uint32_t>(0));
@@ -67,7 +67,7 @@
   LOG(ERROR) << "Attempted to set CSR with width != 32 or 64";
 }
 
-absl::Status RiscVCsrSet::AddCsr(RiscVCsrInterface *csr) {
+absl::Status RiscVCsrSet::AddCsr(RiscVCsrInterface* csr) {
   if (csr == nullptr) {
     return absl::InvalidArgumentError("csr is nullptr");
   }
@@ -87,8 +87,7 @@
   return absl::OkStatus();
 }
 
-absl::StatusOr<RiscVCsrInterface *> RiscVCsrSet::GetCsr(
-    absl::string_view name) {
+absl::StatusOr<RiscVCsrInterface*> RiscVCsrSet::GetCsr(absl::string_view name) {
   auto name_ptr = csr_name_map_.find(name);
   if (name_ptr == csr_name_map_.end()) {
     return absl::NotFoundError(absl::StrCat("No such CSR: '", name, "'"));
@@ -96,7 +95,7 @@
   return name_ptr->second;
 }
 
-absl::StatusOr<RiscVCsrInterface *> RiscVCsrSet::GetCsr(uint64_t index) {
+absl::StatusOr<RiscVCsrInterface*> RiscVCsrSet::GetCsr(uint64_t index) {
   auto index_ptr = csr_index_map_.find(index);
   if (index_ptr == csr_index_map_.end()) {
     return absl::NotFoundError(absl::StrCat("No such CSR index: ", index));
@@ -116,11 +115,11 @@
   return absl::OkStatus();
 }
 
-RiscVCsrSourceOperand::RiscVCsrSourceOperand(RiscVCsrInterface *csr,
+RiscVCsrSourceOperand::RiscVCsrSourceOperand(RiscVCsrInterface* csr,
                                              std::string op_name)
     : csr_(csr), op_name_(op_name) {}
 
-RiscVCsrSourceOperand::RiscVCsrSourceOperand(RiscVCsrInterface *csr)
+RiscVCsrSourceOperand::RiscVCsrSourceOperand(RiscVCsrInterface* csr)
     : RiscVCsrSourceOperand(csr, csr->name()) {}
 
 bool RiscVCsrSourceOperand::AsBool(int i) {
@@ -153,7 +152,7 @@
 
 // Implementation of the destination op templated class methods.
 RiscVCsrDestinationOperand::RiscVCsrDestinationOperand(
-    RiscVCsrInterface *csr, generic::DataBufferDestination *db_dest,
+    RiscVCsrInterface* csr, generic::DataBufferDestination* db_dest,
     int latency, std::string op_name)
     : csr_(csr),
       db_dest_(db_dest),
@@ -163,18 +162,18 @@
       op_name_(op_name) {}
 
 RiscVCsrDestinationOperand::RiscVCsrDestinationOperand(
-    RiscVCsrInterface *csr, generic::DataBufferDestination *db_dest,
+    RiscVCsrInterface* csr, generic::DataBufferDestination* db_dest,
     int latency)
     : RiscVCsrDestinationOperand(csr, db_dest, latency, csr->name()) {}
 
-void RiscVCsrDestinationOperand::InitializeDataBuffer(generic::DataBuffer *db) {
+void RiscVCsrDestinationOperand::InitializeDataBuffer(generic::DataBuffer* db) {
   db->set_destination(db_dest_);
   db->set_latency(latency_);
   db->set_delay_line(delay_line_);
 }
 
-generic::DataBuffer *RiscVCsrDestinationOperand::CopyDataBuffer() {
-  generic::DataBuffer *db = db_factory_->Allocate(csr_->size());
+generic::DataBuffer* RiscVCsrDestinationOperand::CopyDataBuffer() {
+  generic::DataBuffer* db = db_factory_->Allocate(csr_->size());
   if (csr_->size() == 4) {
     db->Set<uint32_t>(0, csr_->AsUint32());
   } else if (csr_->size() == 8) {
@@ -184,8 +183,8 @@
   return db;
 }
 
-generic::DataBuffer *RiscVCsrDestinationOperand::AllocateDataBuffer() {
-  generic::DataBuffer *db = db_factory_->Allocate(csr_->size());
+generic::DataBuffer* RiscVCsrDestinationOperand::AllocateDataBuffer() {
+  generic::DataBuffer* db = db_factory_->Allocate(csr_->size());
   InitializeDataBuffer(db);
   return db;
 }
diff --git a/riscv/riscv_csr.h b/riscv/riscv_csr.h
index b3b9480..53e40b8 100644
--- a/riscv/riscv_csr.h
+++ b/riscv/riscv_csr.h
@@ -170,34 +170,34 @@
 // the index.
 class RiscVCsrBase {
  public:
-  RiscVCsrBase(std::string name, uint64_t index, ArchState *state)
+  RiscVCsrBase(std::string name, uint64_t index, ArchState* state)
       : name_(name), index_(index), state_(state) {}
   RiscVCsrBase() = delete;
   virtual ~RiscVCsrBase() = default;
 
   // Source and destination creation interface.
-  virtual generic::SourceOperandInterface *CreateSourceOperand() = 0;
-  virtual generic::DestinationOperandInterface *CreateSetDestinationOperand(
+  virtual generic::SourceOperandInterface* CreateSourceOperand() = 0;
+  virtual generic::DestinationOperandInterface* CreateSetDestinationOperand(
       int latency, std::string op_name) = 0;
-  virtual generic::DestinationOperandInterface *CreateClearDestinationOperand(
+  virtual generic::DestinationOperandInterface* CreateClearDestinationOperand(
       int latency, std::string op_name) = 0;
-  virtual generic::DestinationOperandInterface *CreateWriteDestinationOperand(
+  virtual generic::DestinationOperandInterface* CreateWriteDestinationOperand(
       int latency, std::string op_name) = 0;
 
   // Three getters: name, index, and state
-  const std::string &name() { return name_; }
+  const std::string& name() { return name_; }
   uint64_t index() const { return index_; }
-  ArchState *state() { return state_; }
+  ArchState* state() { return state_; }
 
  private:
   std::string name_;
   uint64_t index_ = 0;
-  ArchState *state_;
+  ArchState* state_;
 };
 
 class RiscVCsrInterface : public RiscVCsrBase {
  public:
-  RiscVCsrInterface(std::string name, uint64_t index, ArchState *state)
+  RiscVCsrInterface(std::string name, uint64_t index, ArchState* state)
       : RiscVCsrBase(name, index, state) {}
   RiscVCsrInterface() = delete;
   ~RiscVCsrInterface() override = default;
@@ -228,34 +228,34 @@
 class RiscVCsrWriteDb : public generic::DataBufferDestination {
  public:
   RiscVCsrWriteDb() = delete;
-  explicit RiscVCsrWriteDb(RiscVCsrInterface *csr) : csr_(csr) {}
+  explicit RiscVCsrWriteDb(RiscVCsrInterface* csr) : csr_(csr) {}
 
-  void SetDataBuffer(generic::DataBuffer *db) override;
+  void SetDataBuffer(generic::DataBuffer* db) override;
 
  private:
-  RiscVCsrInterface *csr_;
+  RiscVCsrInterface* csr_;
 };
 
 class RiscVCsrClearBitsDb : public generic::DataBufferDestination {
  public:
   RiscVCsrClearBitsDb() = delete;
-  explicit RiscVCsrClearBitsDb(RiscVCsrInterface *csr) : csr_(csr) {}
+  explicit RiscVCsrClearBitsDb(RiscVCsrInterface* csr) : csr_(csr) {}
 
-  void SetDataBuffer(generic::DataBuffer *db) override;
+  void SetDataBuffer(generic::DataBuffer* db) override;
 
  private:
-  RiscVCsrInterface *csr_;
+  RiscVCsrInterface* csr_;
 };
 
 class RiscVCsrSetBitsDb : public generic::DataBufferDestination {
  public:
   RiscVCsrSetBitsDb() = delete;
-  explicit RiscVCsrSetBitsDb(RiscVCsrInterface *csr) : csr_(csr) {}
+  explicit RiscVCsrSetBitsDb(RiscVCsrInterface* csr) : csr_(csr) {}
 
-  void SetDataBuffer(generic::DataBuffer *db) override;
+  void SetDataBuffer(generic::DataBuffer* db) override;
 
  private:
-  RiscVCsrInterface *csr_;
+  RiscVCsrInterface* csr_;
 };
 
 // RiscV CSR class.
@@ -263,47 +263,47 @@
 class RiscVSimpleCsr : public RiscVCsrInterface {
  public:
   // Enum index.
-  RiscVSimpleCsr(std::string name, RiscVCsrEnum index, ArchState *state)
+  RiscVSimpleCsr(std::string name, RiscVCsrEnum index, ArchState* state)
       : RiscVSimpleCsr(
             name, index, 0,
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             state) {}
   RiscVSimpleCsr(std::string name, RiscVCsrEnum index, T initial_value,
-                 ArchState *state)
+                 ArchState* state)
       : RiscVSimpleCsr(
             name, index, initial_value,
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             state) {}
   RiscVSimpleCsr(std::string name, RiscVCsrEnum index, T read_mask,
-                 T write_mask, ArchState *state)
+                 T write_mask, ArchState* state)
       : RiscVSimpleCsr(name, index, 0, read_mask, write_mask, state) {}
   // Uint64_t valued index. These are useful for other RiscV architecture
   // variants that add custom CSRs.
-  RiscVSimpleCsr(std::string name, uint64_t index, ArchState *state)
+  RiscVSimpleCsr(std::string name, uint64_t index, ArchState* state)
       : RiscVSimpleCsr(
             name, index, 0,
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             state) {}
   RiscVSimpleCsr(std::string name, uint64_t index, T initial_value,
-                 ArchState *state)
+                 ArchState* state)
       : RiscVSimpleCsr(
             name, index, initial_value,
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             std::numeric_limits<typename std::make_unsigned<T>::type>::max(),
             state) {}
   RiscVSimpleCsr(std::string name, uint64_t index, T read_mask, T write_mask,
-                 ArchState *state)
+                 ArchState* state)
       : RiscVSimpleCsr(name, index, 0, read_mask, write_mask, state) {}
 
   RiscVSimpleCsr(std::string name, RiscVCsrEnum index, T initial_value,
-                 T read_mask, T write_mask, ArchState *state)
+                 T read_mask, T write_mask, ArchState* state)
       : RiscVSimpleCsr(name, static_cast<uint64_t>(index), initial_value,
                        read_mask, write_mask, state) {}
   RiscVSimpleCsr(std::string name, uint64_t index, T initial_value, T read_mask,
-                 T write_mask, ArchState *state)
+                 T write_mask, ArchState* state)
       : RiscVCsrInterface(name, index, state),
         value_(initial_value),
         read_mask_(read_mask),
@@ -320,8 +320,8 @@
 
   // Disable default and copy constructor, as well as assignment.
   RiscVSimpleCsr() = delete;
-  RiscVSimpleCsr(const RiscVSimpleCsr &) = delete;
-  RiscVSimpleCsr &operator=(const RiscVSimpleCsr &) = delete;
+  RiscVSimpleCsr(const RiscVSimpleCsr&) = delete;
+  RiscVSimpleCsr& operator=(const RiscVSimpleCsr&) = delete;
 
   // Return the value, modified as per read mask.
   uint32_t AsUint32() override {
@@ -353,12 +353,12 @@
   void Set(uint64_t value) override { value_ = static_cast<T>(value); }
 
   // Operand creation interface.
-  generic::SourceOperandInterface *CreateSourceOperand() override;
-  generic::DestinationOperandInterface *CreateSetDestinationOperand(
+  generic::SourceOperandInterface* CreateSourceOperand() override;
+  generic::DestinationOperandInterface* CreateSetDestinationOperand(
       int latency, std::string op_name) override;
-  generic::DestinationOperandInterface *CreateClearDestinationOperand(
+  generic::DestinationOperandInterface* CreateClearDestinationOperand(
       int latency, std::string op_name) override;
-  generic::DestinationOperandInterface *CreateWriteDestinationOperand(
+  generic::DestinationOperandInterface* CreateWriteDestinationOperand(
       int latency, std::string op_name) override;
 
   // Getters and setters.
@@ -367,9 +367,9 @@
   T write_mask() const { return write_mask_; }
   void set_write_mask(T value) { write_mask_ = value; }
 
-  RiscVCsrWriteDb *write_target() const { return write_target_; }
-  RiscVCsrSetBitsDb *set_bits_target() const { return set_bits_target_; }
-  RiscVCsrClearBitsDb *clear_bits_target() const { return clear_bits_target_; }
+  RiscVCsrWriteDb* write_target() const { return write_target_; }
+  RiscVCsrSetBitsDb* set_bits_target() const { return set_bits_target_; }
+  RiscVCsrClearBitsDb* clear_bits_target() const { return clear_bits_target_; }
 
   size_t size() const override { return sizeof(T); }
 
@@ -383,9 +383,9 @@
       std::numeric_limits<typename std::make_unsigned<T>::type>::max();
   T write_mask_ =
       std::numeric_limits<typename std::make_unsigned<T>::type>::max();
-  RiscVCsrWriteDb *write_target_;
-  RiscVCsrSetBitsDb *set_bits_target_;
-  RiscVCsrClearBitsDb *clear_bits_target_;
+  RiscVCsrWriteDb* write_target_;
+  RiscVCsrSetBitsDb* set_bits_target_;
+  RiscVCsrClearBitsDb* clear_bits_target_;
 };
 
 // The shadow csr class is used to implement a more restricted view of another
@@ -395,7 +395,7 @@
 class RiscVShadowCsr : public RiscVCsrInterface {
  public:
   RiscVShadowCsr(std::string name, RiscVCsrEnum index, T read_mask,
-                 T write_mask, ArchState *state, RiscVCsrInterface *csr)
+                 T write_mask, ArchState* state, RiscVCsrInterface* csr)
       : RiscVCsrInterface(name, static_cast<uint64_t>(index), state),
         csr_(csr),
         read_mask_(read_mask),
@@ -404,8 +404,8 @@
         set_bits_target_(new RiscVCsrSetBitsDb(this)),
         clear_bits_target_(new RiscVCsrClearBitsDb(this)) {}
   RiscVShadowCsr() = delete;
-  RiscVShadowCsr(const RiscVShadowCsr &) = delete;
-  RiscVShadowCsr &operator=(const RiscVShadowCsr &) = delete;
+  RiscVShadowCsr(const RiscVShadowCsr&) = delete;
+  RiscVShadowCsr& operator=(const RiscVShadowCsr&) = delete;
 
   ~RiscVShadowCsr() override {
     delete write_target_;
@@ -451,29 +451,29 @@
   // Set to reset value.
   void Reset() override { /* Empty. */ }
   // Operand creation interface.
-  generic::SourceOperandInterface *CreateSourceOperand() override;
-  generic::DestinationOperandInterface *CreateSetDestinationOperand(
+  generic::SourceOperandInterface* CreateSourceOperand() override;
+  generic::DestinationOperandInterface* CreateSetDestinationOperand(
       int latency, std::string op_name) override;
-  generic::DestinationOperandInterface *CreateClearDestinationOperand(
+  generic::DestinationOperandInterface* CreateClearDestinationOperand(
       int latency, std::string op_name) override;
-  generic::DestinationOperandInterface *CreateWriteDestinationOperand(
+  generic::DestinationOperandInterface* CreateWriteDestinationOperand(
       int latency, std::string op_name) override;
 
-  RiscVCsrWriteDb *write_target() const { return write_target_; }
-  RiscVCsrSetBitsDb *set_bits_target() const { return set_bits_target_; }
-  RiscVCsrClearBitsDb *clear_bits_target() const { return clear_bits_target_; }
+  RiscVCsrWriteDb* write_target() const { return write_target_; }
+  RiscVCsrSetBitsDb* set_bits_target() const { return set_bits_target_; }
+  RiscVCsrClearBitsDb* clear_bits_target() const { return clear_bits_target_; }
 
-  RiscVCsrInterface *csr() const { return csr_; }
+  RiscVCsrInterface* csr() const { return csr_; }
   T read_mask() const { return read_mask_; }
   T write_mask() const { return write_mask_; }
 
  private:
-  RiscVCsrInterface *csr_;
+  RiscVCsrInterface* csr_;
   T read_mask_;
   T write_mask_;
-  RiscVCsrWriteDb *write_target_;
-  RiscVCsrSetBitsDb *set_bits_target_;
-  RiscVCsrClearBitsDb *clear_bits_target_;
+  RiscVCsrWriteDb* write_target_;
+  RiscVCsrSetBitsDb* set_bits_target_;
+  RiscVCsrClearBitsDb* clear_bits_target_;
 };
 
 using RiscV32SimpleCsr = RiscVSimpleCsr<uint32_t>;
@@ -483,30 +483,30 @@
  public:
   // Constructor.
   RiscVCsrSet() = default;
-  RiscVCsrSet(const RiscVCsrSet &) = delete;
-  RiscVCsrSet &operator=(const RiscVCsrSet &) = delete;
+  RiscVCsrSet(const RiscVCsrSet&) = delete;
+  RiscVCsrSet& operator=(const RiscVCsrSet&) = delete;
 
   // Add the CSR to the CsrSet. Return error if it already exists. The storage
   // is owned by the caller, and must remain valid for the duration of
   // the lifetime of the CsrSet instance, or explicitly removed.
-  absl::Status AddCsr(RiscVCsrInterface *csr);
+  absl::Status AddCsr(RiscVCsrInterface* csr);
   // Methods to get a handle to the CSR.
-  absl::StatusOr<RiscVCsrInterface *> GetCsr(absl::string_view name);
-  absl::StatusOr<RiscVCsrInterface *> GetCsr(uint64_t index);
+  absl::StatusOr<RiscVCsrInterface*> GetCsr(absl::string_view name);
+  absl::StatusOr<RiscVCsrInterface*> GetCsr(uint64_t index);
   // Remove the CSR from the CsrSet.
   absl::Status RemoveCsr(uint64_t csr_index);
 
  private:
-  absl::flat_hash_map<std::string, RiscVCsrInterface *> csr_name_map_;
-  absl::flat_hash_map<uint64_t, RiscVCsrInterface *> csr_index_map_;
+  absl::flat_hash_map<std::string, RiscVCsrInterface*> csr_name_map_;
+  absl::flat_hash_map<uint64_t, RiscVCsrInterface*> csr_index_map_;
 };
 
 // Source operand type for CSR.
 class RiscVCsrSourceOperand : public generic::SourceOperandInterface {
  public:
   // Constructor. Note, default constructor is deleted.
-  RiscVCsrSourceOperand(RiscVCsrInterface *csr, std::string op_name);
-  explicit RiscVCsrSourceOperand(RiscVCsrInterface *csr);
+  RiscVCsrSourceOperand(RiscVCsrInterface* csr, std::string op_name);
+  explicit RiscVCsrSourceOperand(RiscVCsrInterface* csr);
   RiscVCsrSourceOperand() = delete;
 
   // Methods to read the value of the CSR.
@@ -522,14 +522,14 @@
   // Returns the RiscVCsrInterface<T> object wrapped in absl::any.
   std::any GetObject() const final { return std::any(csr_); }
   // Non-inherited method to get the register object.
-  RiscVCsrInterface *GetCsr() const { return csr_; }
+  RiscVCsrInterface* GetCsr() const { return csr_; }
 
   std::vector<int> shape() const final { return {1}; }
 
   std::string AsString() const final { return op_name_; }
 
  private:
-  RiscVCsrInterface *csr_;
+  RiscVCsrInterface* csr_;
   std::string op_name_;
 };
 
@@ -537,26 +537,26 @@
 class RiscVCsrDestinationOperand : public generic::DestinationOperandInterface {
  public:
   // Constructor and Destructor
-  RiscVCsrDestinationOperand(RiscVCsrInterface *csr,
-                             generic::DataBufferDestination *db_dest,
+  RiscVCsrDestinationOperand(RiscVCsrInterface* csr,
+                             generic::DataBufferDestination* db_dest,
                              int latency);
-  RiscVCsrDestinationOperand(RiscVCsrInterface *csr,
-                             generic::DataBufferDestination *db_dest,
+  RiscVCsrDestinationOperand(RiscVCsrInterface* csr,
+                             generic::DataBufferDestination* db_dest,
                              int latency, std::string op_name);
   RiscVCsrDestinationOperand() = delete;
 
   // Initializes the DataBuffer instance so that when Submit is called, it can
   // be entered into the correct delay line, with the correct latency, targeting
   // the correct csr.
-  void InitializeDataBuffer(generic::DataBuffer *db) override;
+  void InitializeDataBuffer(generic::DataBuffer* db) override;
 
   // Allocates and returns an initialized DataBuffer instance that contains a
   // copy of the current value of the csr. This is useful when only part
   // of the destination register will be modified.
-  generic::DataBuffer *CopyDataBuffer() override;
+  generic::DataBuffer* CopyDataBuffer() override;
 
   // Allocates and returns an initialized DataBuffer instance.
-  generic::DataBuffer *AllocateDataBuffer() final;
+  generic::DataBuffer* AllocateDataBuffer() final;
 
   // Returns the latency associated with writes to this csr operand.
   int latency() const override { return latency_; }
@@ -567,21 +567,21 @@
   std::vector<int> shape() const override { return {1}; }
 
   // Non-inherited method to get the register object.
-  RiscVCsrInterface *GetRiscVCsr() const { return csr_; }
+  RiscVCsrInterface* GetRiscVCsr() const { return csr_; }
 
   std::string AsString() const override { return op_name_; }
 
  private:
-  RiscVCsrInterface *csr_;
-  generic::DataBufferDestination *db_dest_;
-  generic::DataBufferFactory *db_factory_;
+  RiscVCsrInterface* csr_;
+  generic::DataBufferDestination* db_dest_;
+  generic::DataBufferFactory* db_factory_;
   int latency_;
-  generic::DataBufferDelayLine *delay_line_;
+  generic::DataBufferDelayLine* delay_line_;
   std::string op_name_;
 };
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVSimpleCsr<T>::CreateSetDestinationOperand(int latency,
                                                std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->set_bits_target(), latency,
@@ -589,7 +589,7 @@
 }
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVSimpleCsr<T>::CreateClearDestinationOperand(int latency,
                                                  std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->clear_bits_target(),
@@ -597,7 +597,7 @@
 }
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVSimpleCsr<T>::CreateWriteDestinationOperand(int latency,
                                                  std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->write_target(), latency,
@@ -605,12 +605,12 @@
 }
 
 template <typename T>
-generic::SourceOperandInterface *RiscVSimpleCsr<T>::CreateSourceOperand() {
+generic::SourceOperandInterface* RiscVSimpleCsr<T>::CreateSourceOperand() {
   return new RiscVCsrSourceOperand(this);
 }
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVShadowCsr<T>::CreateSetDestinationOperand(int latency,
                                                std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->set_bits_target(), latency,
@@ -618,7 +618,7 @@
 }
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVShadowCsr<T>::CreateClearDestinationOperand(int latency,
                                                  std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->clear_bits_target(),
@@ -626,7 +626,7 @@
 }
 
 template <typename T>
-generic::DestinationOperandInterface *
+generic::DestinationOperandInterface*
 RiscVShadowCsr<T>::CreateWriteDestinationOperand(int latency,
                                                  std::string op_name) {
   return new RiscVCsrDestinationOperand(this, this->write_target(), latency,
@@ -634,7 +634,7 @@
 }
 
 template <typename T>
-generic::SourceOperandInterface *RiscVShadowCsr<T>::CreateSourceOperand() {
+generic::SourceOperandInterface* RiscVShadowCsr<T>::CreateSourceOperand() {
   return new RiscVCsrSourceOperand(this);
 }
 
diff --git a/riscv/riscv_d_instructions.cc b/riscv/riscv_d_instructions.cc
index 690c5a2..51f4c03 100644
--- a/riscv/riscv_d_instructions.cc
+++ b/riscv/riscv_d_instructions.cc
@@ -54,44 +54,44 @@
 static inline T CanonicalizeNaN(T value) {
   if (!std::isnan(value)) return value;
   auto nan_value = FPTypeInfo<T>::kCanonicalNaN;
-  return *reinterpret_cast<T *>(&nan_value);
+  return *reinterpret_cast<T*>(&nan_value);
 }
 
 }  // namespace internal
 
 // Basic arithmetic operations.
-void RiscVDAdd(const Instruction *instruction) {
+void RiscVDAdd(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, double, double>(
       instruction, [](double a, double b) { return a + b; });
 }
 
-void RiscVDSub(const Instruction *instruction) {
+void RiscVDSub(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, double, double>(
       instruction, [](double a, double b) { return a - b; });
 }
 
-void RiscVDMul(const Instruction *instruction) {
+void RiscVDMul(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, double, double>(
       instruction, [](double a, double b) { return a * b; });
 }
 
-void RiscVDDiv(const Instruction *instruction) {
+void RiscVDDiv(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, double, double>(
       instruction, [](double a, double b) { return a / b; });
 }
 
 // Square root uses the library square root.
-void RiscVDSqrt(const Instruction *instruction) {
+void RiscVDSqrt(const Instruction* instruction) {
   RiscVUnaryNaNBoxOp<FPRegister::ValueType, FPRegister::ValueType, double,
                      double>(instruction, [instruction](double a) -> double {
     // If the input value is NaN or less than zero, set the invalid op flag.
     if (FPTypeInfo<double>::IsNaN(a) || (a < 0.0)) {
       if (!FPTypeInfo<double>::IsQNaN(a)) {
-        auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+        auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
         flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
         flag_db->Submit();
       }
-      return *reinterpret_cast<const double *>(
+      return *reinterpret_cast<const double*>(
           &FPTypeInfo<double>::kCanonicalNaN);
     }
 
@@ -102,12 +102,12 @@
     // Get the rounding mode.
     int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
-    auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+    auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
     // If the rounding mode is dynamic, read it from the current state.
     if (rm_value == *FPRoundingMode::kDynamic) {
       if (!rv_fp->rounding_mode_valid()) {
         LOG(ERROR) << "Invalid rounding mode";
-        return *reinterpret_cast<const double *>(
+        return *reinterpret_cast<const double*>(
             &FPTypeInfo<double>::kCanonicalNaN);
       }
       rm_value = *rv_fp->GetRoundingMode();
@@ -122,18 +122,18 @@
 }
 
 // If either operand is NaN return the other.
-void RiscVDMin(const Instruction *instruction) {
+void RiscVDMin(const Instruction* instruction) {
   RiscVBinaryOp<FPRegister, double, double>(
       instruction, [instruction](double a, double b) -> double {
         if (FPTypeInfo<double>::IsSNaN(a) || FPTypeInfo<double>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
         if (FPTypeInfo<double>::IsNaN(a)) {
           if (FPTypeInfo<double>::IsNaN(b)) {
             UInt not_a_number = FPTypeInfo<double>::kCanonicalNaN;
-            return *reinterpret_cast<double *>(&not_a_number);
+            return *reinterpret_cast<double*>(&not_a_number);
           }
           return b;
         }
@@ -145,18 +145,18 @@
 }
 
 // If either operand is NaN return the other.
-void RiscVDMax(const Instruction *instruction) {
+void RiscVDMax(const Instruction* instruction) {
   RiscVBinaryOp<FPRegister, double, double>(
       instruction, [instruction](double a, double b) {
         if (FPTypeInfo<double>::IsSNaN(a) || FPTypeInfo<double>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
         if (FPTypeInfo<double>::IsNaN(a)) {
           if (FPTypeInfo<double>::IsNaN(b)) {
             UInt not_a_number = FPTypeInfo<double>::kCanonicalNaN;
-            return *reinterpret_cast<double *>(&not_a_number);
+            return *reinterpret_cast<double*>(&not_a_number);
           }
           return b;
         }
@@ -173,14 +173,14 @@
 // Negated multiply-add -((a * b) + c)
 // Negated multiply-subtract -((a * b) - c)
 
-void RiscVDMadd(const Instruction *instruction) {
+void RiscVDMadd(const Instruction* instruction) {
   using T = double;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if (FPTypeInfo<T>::IsNaN(a)) return internal::CanonicalizeNaN(a);
         if (FPTypeInfo<T>::IsNaN(b)) return internal::CanonicalizeNaN(b);
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -189,9 +189,9 @@
         if (c == 0.0) {
           if ((a == 0.0 && !std::isinf(b)) || (b == 0.0 && !std::isinf(a))) {
             UInt c_sign =
-                *reinterpret_cast<UInt *>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
-            UInt ua = *reinterpret_cast<UInt *>(&a);
-            UInt ub = *reinterpret_cast<UInt *>(&b);
+                *reinterpret_cast<UInt*>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
+            UInt ua = *reinterpret_cast<UInt*>(&a);
+            UInt ub = *reinterpret_cast<UInt*>(&b);
             UInt prod_sign = (ua ^ ub) >> (FPTypeInfo<T>::kBitSize - 1);
             if (prod_sign != c_sign) return 0.0;
             return c;
@@ -202,14 +202,14 @@
       });
 }
 
-void RiscVDMsub(const Instruction *instruction) {
+void RiscVDMsub(const Instruction* instruction) {
   using T = double;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if (FPTypeInfo<T>::IsNaN(a)) return internal::CanonicalizeNaN(a);
         if (FPTypeInfo<T>::IsNaN(b)) return internal::CanonicalizeNaN(b);
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -218,9 +218,9 @@
         if (c == 0.0) {
           if ((a == 0.0 && !std::isinf(b)) || (b == 0.0 && !std::isinf(a))) {
             UInt c_sign =
-                -*reinterpret_cast<UInt *>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
-            UInt ua = *reinterpret_cast<UInt *>(&a);
-            UInt ub = *reinterpret_cast<UInt *>(&b);
+                -*reinterpret_cast<UInt*>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
+            UInt ua = *reinterpret_cast<UInt*>(&a);
+            UInt ub = *reinterpret_cast<UInt*>(&b);
             UInt prod_sign = (ua ^ ub) >> (FPTypeInfo<T>::kBitSize - 1);
             if (prod_sign == c_sign) return 0.0;
             return -c;
@@ -231,14 +231,14 @@
       });
 }
 
-void RiscVDNmadd(const Instruction *instruction) {
+void RiscVDNmadd(const Instruction* instruction) {
   using T = double;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if (FPTypeInfo<T>::IsNaN(a)) return internal::CanonicalizeNaN(a);
         if (FPTypeInfo<T>::IsNaN(b)) return internal::CanonicalizeNaN(b);
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -247,9 +247,9 @@
         if (c == 0.0) {
           if ((a == 0.0 && !std::isinf(b)) || (b == 0.0 && !std::isinf(a))) {
             UInt c_sign =
-                *reinterpret_cast<UInt *>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
-            UInt ua = *reinterpret_cast<UInt *>(&a);
-            UInt ub = *reinterpret_cast<UInt *>(&b);
+                *reinterpret_cast<UInt*>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
+            UInt ua = *reinterpret_cast<UInt*>(&a);
+            UInt ub = *reinterpret_cast<UInt*>(&b);
             UInt prod_sign = (ua ^ ub) >> (FPTypeInfo<T>::kBitSize - 1);
             if (prod_sign != c_sign) return 0.0;
             return -c;
@@ -260,7 +260,7 @@
       });
 }
 
-void RiscVDNmsub(const Instruction *instruction) {
+void RiscVDNmsub(const Instruction* instruction) {
   using T = double;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
@@ -269,7 +269,7 @@
         // Illegal operation flag set if either a or b are infinite, and
         // the other is zero.
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -278,9 +278,9 @@
         if (c == 0.0) {
           if ((a == 0.0 && !std::isinf(b)) || (b == 0.0 && !std::isinf(a))) {
             UInt c_sign =
-                -*reinterpret_cast<UInt *>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
-            UInt ua = *reinterpret_cast<UInt *>(&a);
-            UInt ub = *reinterpret_cast<UInt *>(&b);
+                -*reinterpret_cast<UInt*>(&c) >> (FPTypeInfo<T>::kBitSize - 1);
+            UInt ua = *reinterpret_cast<UInt*>(&a);
+            UInt ub = *reinterpret_cast<UInt*>(&b);
             UInt prod_sign = (ua ^ ub) >> (FPTypeInfo<T>::kBitSize - 1);
             if (prod_sign != c_sign) return 0.0;
             return c;
@@ -294,44 +294,44 @@
 // Conversion instructions.
 
 // Convert int to double.
-void RiscVDCvtDw(const Instruction *instruction) {
+void RiscVDCvtDw(const Instruction* instruction) {
   RiscVUnaryFloatOp<double, int32_t>(
       instruction, [](int32_t a) -> double { return static_cast<double>(a); });
 }
 
 // Convert unsigned word to double.
-void RiscVDCvtDwu(const Instruction *instruction) {
+void RiscVDCvtDwu(const Instruction* instruction) {
   RiscVUnaryFloatOp<double, uint32_t>(
       instruction, [](uint32_t a) -> double { return static_cast<double>(a); });
 }
 
 // Convert double to float.
-void RiscVDCvtSd(const Instruction *instruction) {
+void RiscVDCvtSd(const Instruction* instruction) {
   RiscVUnaryFloatNaNBoxOp<RVFpRegister::ValueType, RVFpRegister::ValueType,
                           float, double>(instruction, [](double a) -> float {
     if (FPTypeInfo<double>::IsNaN(a)) {
       typename FPTypeInfo<float>::UIntType uint_value;
       uint_value = FPTypeInfo<float>::kCanonicalNaN;
-      return *reinterpret_cast<float *>(&uint_value);
+      return *reinterpret_cast<float*>(&uint_value);
     }
     return static_cast<float>(a);
   });
 }
 
 // Convert float to double.
-void RiscVDCvtDs(const Instruction *instruction) {
+void RiscVDCvtDs(const Instruction* instruction) {
   RiscVUnaryFloatOp<double, float>(instruction, [](float a) -> double {
     if (FPTypeInfo<float>::IsNaN(a)) {
       typename FPTypeInfo<double>::UIntType uint_value;
       uint_value = FPTypeInfo<double>::kCanonicalNaN;
-      return *reinterpret_cast<double *>(&uint_value);
+      return *reinterpret_cast<double*>(&uint_value);
     }
     return static_cast<double>(a);
   });
 }
 
 // Use sign of the second operand as the sign in the first.
-void RiscVDSgnj(const Instruction *instruction) {
+void RiscVDSgnj(const Instruction* instruction) {
   RiscVBinaryOp<FPRegister, UInt, UInt>(
       instruction, [](UInt a, UInt b) -> UInt {
         return (a & 0x7fff'ffff'ffff'ffff) | (b & 0x8000'0000'0000'0000);
@@ -339,7 +339,7 @@
 }
 
 // Use negation of the sign of the second operand as the sign in the first.
-void RiscVDSgnjn(const Instruction *instruction) {
+void RiscVDSgnjn(const Instruction* instruction) {
   RiscVBinaryOp<FPRegister, UInt, UInt>(
       instruction, [](UInt a, UInt b) -> UInt {
         return (a & 0x7fff'ffff'ffff'ffff) | (~b & 0x8000'0000'0000'0000);
@@ -347,7 +347,7 @@
 }
 
 // Use the xor of the signs of the two operands as the sign in the first.
-void RiscVDSgnjx(const Instruction *instruction) {
+void RiscVDSgnjx(const Instruction* instruction) {
   RiscVBinaryOp<FPRegister, UInt, UInt>(
       instruction, [](UInt a, UInt b) -> UInt {
         return (a & 0x7fff'ffff'ffff'ffff) | ((a ^ b) & 0x8000'0000'0000'0000);
@@ -360,35 +360,35 @@
 using XInt = std::make_signed<RV32Register::ValueType>::type;
 using XUInt = std::make_unsigned<RV32Register::ValueType>::type;
 
-void RiscVDSd(const Instruction *instruction) {
+void RiscVDSd(const Instruction* instruction) {
   using T = uint64_t;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   if (state->mstatus()->fs() == 0) return;
   XUInt base = generic::GetInstructionSource<XUInt>(instruction, 0);
   XInt offset = generic::GetInstructionSource<XInt>(instruction, 1);
   XUInt address = base + offset;
   T value = generic::GetInstructionSource<T>(instruction, 2);
-  auto *db = state->db_factory()->Allocate(sizeof(T));
+  auto* db = state->db_factory()->Allocate(sizeof(T));
   db->Set<T>(0, value);
   state->StoreMemory(instruction, address, db);
   db->DecRef();
 }
 
 // Convert double to int.
-void RiscVDCvtWd(const Instruction *instruction) {
+void RiscVDCvtWd(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, double, int32_t>(instruction);
 }
 // Convert double to unsigned word.
-void RiscVDCvtWud(const Instruction *instruction) {
+void RiscVDCvtWud(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XUInt, double, uint32_t>(instruction);
 }
 
 // Double precision floating point compare equal.
-void RiscVDCmpeq(const Instruction *instruction) {
+void RiscVDCmpeq(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, uint32_t, double>(
       instruction, [instruction](double a, double b) -> uint32_t {
         if (FPTypeInfo<double>::IsSNaN(a) || FPTypeInfo<double>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -397,11 +397,11 @@
 }
 
 // Double precision floating point compare less.
-void RiscVDCmplt(const Instruction *instruction) {
+void RiscVDCmplt(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, uint32_t, double>(
       instruction, [instruction](double a, double b) -> uint32_t {
         if (FPTypeInfo<double>::IsNaN(a) || FPTypeInfo<double>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -410,11 +410,11 @@
 }
 
 // Double precision floating point compare less than or equal.
-void RiscVDCmple(const Instruction *instruction) {
+void RiscVDCmple(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, uint32_t, double>(
       instruction, [instruction](double a, double b) -> uint32_t {
         if (FPTypeInfo<double>::IsNaN(a) || FPTypeInfo<double>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -423,7 +423,7 @@
 }
 
 // Return the class attribute of the source operand.
-void RiscVDClass(const Instruction *instruction) {
+void RiscVDClass(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, XUInt, double>(instruction, [](double a) -> XUInt {
     auto res = static_cast<XUInt>(ClassifyFP(a));
     return res;
@@ -438,35 +438,35 @@
 using XInt = std::make_signed<RV64Register::ValueType>::type;
 using XUInt = std::make_unsigned<RV64Register::ValueType>::type;
 
-void RiscVDSd(const Instruction *instruction) {
+void RiscVDSd(const Instruction* instruction) {
   using T = uint64_t;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   if (state->mstatus()->fs() == 0) return;
   XUInt base = generic::GetInstructionSource<XUInt>(instruction, 0);
   XInt offset = generic::GetInstructionSource<XInt>(instruction, 1);
   XUInt address = base + offset;
   T value = generic::GetInstructionSource<T>(instruction, 2);
-  auto *db = state->db_factory()->Allocate(sizeof(T));
+  auto* db = state->db_factory()->Allocate(sizeof(T));
   db->Set<T>(0, value);
   state->StoreMemory(instruction, address, db);
   db->DecRef();
 }
 
 // Convert double to int.
-void RiscVDCvtWd(const Instruction *instruction) {
+void RiscVDCvtWd(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, double, int32_t>(instruction);
 }
 // Convert double to unsigned word.
-void RiscVDCvtWud(const Instruction *instruction) {
+void RiscVDCvtWud(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XUInt, double, uint32_t>(instruction);
 }
 
 // Double precision floating point compare equal.
-void RiscVDCmpeq(const Instruction *instruction) {
+void RiscVDCmpeq(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, XUInt, double>(
       instruction, [instruction](double a, double b) -> XUInt {
         if (FPTypeInfo<double>::IsSNaN(a) || FPTypeInfo<double>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -475,11 +475,11 @@
 }
 
 // Double precision floating point compare less.
-void RiscVDCmplt(const Instruction *instruction) {
+void RiscVDCmplt(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, XUInt, double>(
       instruction, [instruction](double a, double b) -> XUInt {
         if (FPTypeInfo<double>::IsNaN(a) || FPTypeInfo<double>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -488,11 +488,11 @@
 }
 
 // Double precision floating point compare less than or equal.
-void RiscVDCmple(const Instruction *instruction) {
+void RiscVDCmple(const Instruction* instruction) {
   RiscVBinaryOp<XRegister, XUInt, double>(
       instruction, [instruction](double a, double b) -> XUInt {
         if (FPTypeInfo<double>::IsNaN(a) || FPTypeInfo<double>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -501,7 +501,7 @@
 }
 
 // Return the class attribute of the source operand.
-void RiscVDClass(const Instruction *instruction) {
+void RiscVDClass(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, UInt, double>(instruction, [](double a) -> UInt {
     auto res = static_cast<UInt>(ClassifyFP(a));
     return res;
@@ -509,33 +509,33 @@
 }
 
 // Convert double to 64 bit signed integer.
-void RiscVDCvtLd(const Instruction *instruction) {
+void RiscVDCvtLd(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, double, int64_t>(instruction);
 }
 
 // Convert double to 64 bit unsigned integer.
-void RiscVDCvtLud(const Instruction *instruction) {
+void RiscVDCvtLud(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, double, uint64_t>(instruction);
 }
 
 // Convert signed 64 bit integer to double.
-void RiscVDCvtDl(const Instruction *instruction) {
+void RiscVDCvtDl(const Instruction* instruction) {
   RiscVUnaryFloatOp<double, int64_t>(
       instruction, [](int64_t a) -> double { return static_cast<double>(a); });
 }
 
 // Convert unsigned 64 bit integer to double.
-void RiscVDCvtDlu(const Instruction *instruction) {
+void RiscVDCvtDlu(const Instruction* instruction) {
   RiscVUnaryFloatOp<double, uint64_t>(
       instruction, [](uint64_t a) -> double { return static_cast<double>(a); });
 }
 
-void RiscVDMvxd(const Instruction *instruction) {
+void RiscVDMvxd(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, uint64_t, uint64_t>(
       instruction, [](uint64_t a) -> uint64_t { return a; });
 }
 
-void RiscVDMvdx(const Instruction *instruction) {
+void RiscVDMvdx(const Instruction* instruction) {
   RiscVUnaryOp<FPRegister, uint64_t, uint64_t>(
       instruction, [](uint64_t a) -> uint64_t { return a; });
 }
diff --git a/riscv/riscv_d_instructions.h b/riscv/riscv_d_instructions.h
index 81419a9..7d944f4 100644
--- a/riscv/riscv_d_instructions.h
+++ b/riscv/riscv_d_instructions.h
@@ -29,54 +29,54 @@
 // Double precision arithmetic instructions each take 3 source operands and
 // 1 destination register operand. Source 0 and 1 are the data sources to the
 // operation, source 2 is the rounding mode specifier in the instruction.
-void RiscVDAdd(const Instruction *instruction);
-void RiscVDSub(const Instruction *instruction);
-void RiscVDMul(const Instruction *instruction);
-void RiscVDDiv(const Instruction *instruction);
+void RiscVDAdd(const Instruction* instruction);
+void RiscVDSub(const Instruction* instruction);
+void RiscVDMul(const Instruction* instruction);
+void RiscVDDiv(const Instruction* instruction);
 // Double precision square root takes 2 source operands, the source register
 // and the rounding mode, and 1 destination register operand.
-void RiscVDSqrt(const Instruction *instruction);
+void RiscVDSqrt(const Instruction* instruction);
 // The double precision Min and Max instructions each take 2 source register
 // operands and 1 destination register operand.
-void RiscVDMin(const Instruction *instruction);
-void RiscVDMax(const Instruction *instruction);
+void RiscVDMin(const Instruction* instruction);
+void RiscVDMax(const Instruction* instruction);
 // The following four multiply-accumulate instruction each take 3 source
 // register operands (0, 1, 2) and the rounding mode (3), and one destination
 // register operand.
-void RiscVDMadd(const Instruction *instruction);
-void RiscVDMsub(const Instruction *instruction);
-void RiscVDNmadd(const Instruction *instruction);
-void RiscVDNmsub(const Instruction *instruction);
+void RiscVDMadd(const Instruction* instruction);
+void RiscVDMsub(const Instruction* instruction);
+void RiscVDNmadd(const Instruction* instruction);
+void RiscVDNmsub(const Instruction* instruction);
 // The double precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVDCvtDw(const Instruction *instruction);
-void RiscVDCvtDwu(const Instruction *instruction);
-void RiscVDCvtSd(const Instruction *instruction);
-void RiscVDCvtDs(const Instruction *instruction);
+void RiscVDCvtDw(const Instruction* instruction);
+void RiscVDCvtDwu(const Instruction* instruction);
+void RiscVDCvtSd(const Instruction* instruction);
+void RiscVDCvtDs(const Instruction* instruction);
 // The double precision sign manipulation instructions take 2 source register
 // operands and a single destination register operand.
-void RiscVDSgnj(const Instruction *instruction);
-void RiscVDSgnjn(const Instruction *instruction);
-void RiscVDSgnjx(const Instruction *instruction);
+void RiscVDSgnj(const Instruction* instruction);
+void RiscVDSgnjn(const Instruction* instruction);
+void RiscVDSgnjx(const Instruction* instruction);
 
 namespace RV32 {
 
 // Store float instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVDSd(const Instruction *instruction);
+void RiscVDSd(const Instruction* instruction);
 // The double precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVDCvtWd(const Instruction *instruction);
-void RiscVDCvtWud(const Instruction *instruction);
+void RiscVDCvtWd(const Instruction* instruction);
+void RiscVDCvtWud(const Instruction* instruction);
 // The double precision compare instructions take 2 source register operands
 // and a single destination register operand.
-void RiscVDCmpeq(const Instruction *instruction);
-void RiscVDCmplt(const Instruction *instruction);
-void RiscVDCmple(const Instruction *instruction);
+void RiscVDCmpeq(const Instruction* instruction);
+void RiscVDCmplt(const Instruction* instruction);
+void RiscVDCmple(const Instruction* instruction);
 // The double precision class instruction takes a single source register operand
 // and a single destination register operand.
-void RiscVDClass(const Instruction *instruction);
+void RiscVDClass(const Instruction* instruction);
 
 }  // namespace RV32
 
@@ -86,30 +86,30 @@
 // Store float instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVDSd(const Instruction *instruction);
+void RiscVDSd(const Instruction* instruction);
 // The double precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVDCvtWd(const Instruction *instruction);
-void RiscVDCvtWud(const Instruction *instruction);
+void RiscVDCvtWd(const Instruction* instruction);
+void RiscVDCvtWud(const Instruction* instruction);
 // The double precision compare instructions take 2 source register operands
 // and a single destination register operand.
-void RiscVDCmpeq(const Instruction *instruction);
-void RiscVDCmplt(const Instruction *instruction);
-void RiscVDCmple(const Instruction *instruction);
+void RiscVDCmpeq(const Instruction* instruction);
+void RiscVDCmplt(const Instruction* instruction);
+void RiscVDCmple(const Instruction* instruction);
 // The double precision class instruction takes a single source register operand
 // and a single destination register operand.
-void RiscVDClass(const Instruction *instruction);
+void RiscVDClass(const Instruction* instruction);
 
 // The double precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVDCvtLd(const Instruction *instruction);
-void RiscVDCvtLud(const Instruction *instruction);
-void RiscVDCvtDl(const Instruction *instruction);
-void RiscVDCvtDlu(const Instruction *instruction);
+void RiscVDCvtLd(const Instruction* instruction);
+void RiscVDCvtLud(const Instruction* instruction);
+void RiscVDCvtDl(const Instruction* instruction);
+void RiscVDCvtDlu(const Instruction* instruction);
 // The move instruction takes a single register source operand and a single
 // destination register operand.
-void RiscVDMvxd(const Instruction *instruction);
-void RiscVDMvdx(const Instruction *instruction);
+void RiscVDMvxd(const Instruction* instruction);
+void RiscVDMvdx(const Instruction* instruction);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_debug_info.cc b/riscv/riscv_debug_info.cc
index 798b8b7..b7bbc87 100644
--- a/riscv/riscv_debug_info.cc
+++ b/riscv/riscv_debug_info.cc
@@ -222,8 +222,8 @@
                            {*DebugRegisterEnum::kV30, kV30Name},
                            {*DebugRegisterEnum::kV31, kV31Name}}) {}
 
-RiscVDebugInfo *RiscVDebugInfo::Instance() {
-  static RiscVDebugInfo *instance_ = nullptr;
+RiscVDebugInfo* RiscVDebugInfo::Instance() {
+  static RiscVDebugInfo* instance_ = nullptr;
   if (instance_ == nullptr) {
     instance_ = new RiscVDebugInfo();
   }
diff --git a/riscv/riscv_encoding_common.h b/riscv/riscv_encoding_common.h
index c578361..8e99e9b 100644
--- a/riscv/riscv_encoding_common.h
+++ b/riscv/riscv_encoding_common.h
@@ -34,8 +34,8 @@
   virtual ~RiscVEncodingCommon() = default;
 
   // Accessors.
-  virtual RiscVState *state() const = 0;
-  virtual generic::SimpleResourcePool *resource_pool() = 0;
+  virtual RiscVState* state() const = 0;
+  virtual generic::SimpleResourcePool* resource_pool() = 0;
   virtual uint32_t inst_word() const = 0;
 };
 
diff --git a/riscv/riscv_f_instructions.cc b/riscv/riscv_f_instructions.cc
index 34b572a..8f4257c 100644
--- a/riscv/riscv_f_instructions.cc
+++ b/riscv/riscv_f_instructions.cc
@@ -58,37 +58,37 @@
 
 // Convert float to signed 32 bit integer.
 template <typename XInt>
-static inline void RVFCvtWs(const Instruction *instruction) {
+static inline void RVFCvtWs(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, float, int32_t>(instruction);
 }
 
 // Convert float to unsigned 32 bit integer.
 template <typename XUint>
-static inline void RVFCvtWus(const Instruction *instruction) {
+static inline void RVFCvtWus(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XUint, float, uint32_t>(instruction);
 }
 
 // Convert float to signed 64 bit integer.
 template <typename XInt>
-static inline void RVFCvtLs(const Instruction *instruction) {
+static inline void RVFCvtLs(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XInt, float, int64_t>(instruction);
 }
 
 // Convert float to unsigned 64 bit integer.
 template <typename XUint>
-static inline void RVFCvtLus(const Instruction *instruction) {
+static inline void RVFCvtLus(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<XUint, float, uint64_t>(instruction);
 }
 
 // Single precision compare equal.
 template <typename XRegister>
-static inline void RVFCmpeq(const Instruction *instruction) {
+static inline void RVFCmpeq(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<typename XRegister::ValueType,
                       typename XRegister::ValueType, float>(
       instruction,
       [instruction](float a, float b) -> typename XRegister::ValueType {
         if (FPTypeInfo<float>::IsSNaN(a) || FPTypeInfo<float>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -98,13 +98,13 @@
 
 // Single precicion compare less than.
 template <typename XRegister>
-static inline void RVFCmplt(const Instruction *instruction) {
+static inline void RVFCmplt(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<typename XRegister::ValueType,
                       typename XRegister::ValueType, float>(
       instruction,
       [instruction](float a, float b) -> typename XRegister::ValueType {
         if (FPTypeInfo<float>::IsNaN(a) || FPTypeInfo<float>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -114,13 +114,13 @@
 
 // Single precision compare less than or equal.
 template <typename XRegister>
-static inline void RVFCmple(const Instruction *instruction) {
+static inline void RVFCmple(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<typename XRegister::ValueType,
                       typename XRegister::ValueType, float>(
       instruction,
       [instruction](float a, float b) -> typename XRegister::ValueType {
         if (FPTypeInfo<float>::IsNaN(a) || FPTypeInfo<float>::IsNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -132,17 +132,17 @@
 static inline T CanonicalizeNaN(T value) {
   if (!std::isnan(value)) return value;
   auto nan_value = FPTypeInfo<T>::kCanonicalNaN;
-  return *reinterpret_cast<T *>(&nan_value);
+  return *reinterpret_cast<T*>(&nan_value);
 }
 
 }  // namespace internal
 
 // Load child instruction.
-void RiscVIFlwChild(const Instruction *instruction) {
-  LoadContext *context = static_cast<LoadContext *>(instruction->context());
+void RiscVIFlwChild(const Instruction* instruction) {
+  LoadContext* context = static_cast<LoadContext*>(instruction->context());
   auto value = context->value_db->Get<FPUInt>(0);
-  auto *reg =
-      static_cast<generic::RegisterDestinationOperand<FPRegister::ValueType> *>(
+  auto* reg =
+      static_cast<generic::RegisterDestinationOperand<FPRegister::ValueType>*>(
           instruction->Destination(0))
           ->GetRegister();
   if (sizeof(FPRegister::ValueType) > sizeof(FPUInt)) {
@@ -157,40 +157,39 @@
 }
 
 // Basic arithmetic instructions.
-void RiscVFAdd(const Instruction *instruction) {
+void RiscVFAdd(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [](float a, float b) { return a + b; });
 }
 
-void RiscVFSub(const Instruction *instruction) {
+void RiscVFSub(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [](float a, float b) { return a - b; });
 }
 
-void RiscVFMul(const Instruction *instruction) {
+void RiscVFMul(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [](float a, float b) { return a * b; });
 }
 
-void RiscVFDiv(const Instruction *instruction) {
+void RiscVFDiv(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [](float a, float b) { return a / b; });
 }
 
 // Square root uses the library square root, but check for special conditions
 // to set flags that may not be set correctly with the library version.
-void RiscVFSqrt(const Instruction *instruction) {
+void RiscVFSqrt(const Instruction* instruction) {
   RiscVUnaryNaNBoxOp<FPRegister::ValueType, FPRegister::ValueType, float,
                      float>(instruction, [instruction](float a) -> float {
     // If the input value is NaN or less than zero, set the invalid op flag.
     if (FPTypeInfo<float>::IsNaN(a) || (a < 0.0)) {
       if (!FPTypeInfo<float>::IsQNaN(a)) {
-        auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+        auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
         flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
         flag_db->Submit();
       }
-      return *reinterpret_cast<const float *>(
-          &FPTypeInfo<float>::kCanonicalNaN);
+      return *reinterpret_cast<const float*>(&FPTypeInfo<float>::kCanonicalNaN);
     }
 
     // Square root of 0 returns 0, and of -0.0 returns -0.0.
@@ -200,12 +199,12 @@
     // Get the rounding mode.
     int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
-    auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+    auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
     // If the rounding mode is dynamic, read it from the current state.
     if (rm_value == *FPRoundingMode::kDynamic) {
       if (!rv_fp->rounding_mode_valid()) {
         LOG(ERROR) << "Invalid rounding mode";
-        return *reinterpret_cast<const float *>(
+        return *reinterpret_cast<const float*>(
             &FPTypeInfo<float>::kCanonicalNaN);
       }
       rm_value = *rv_fp->GetRoundingMode();
@@ -220,11 +219,11 @@
 }
 
 // If either operand is NaN return the other.
-void RiscVFMin(const Instruction *instruction) {
+void RiscVFMin(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [instruction](float a, float b) -> float {
         if (FPTypeInfo<float>::IsSNaN(a) || FPTypeInfo<float>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -232,7 +231,7 @@
           if (FPTypeInfo<float>::IsNaN(b)) {
             FPTypeInfo<float>::UIntType not_a_number =
                 FPTypeInfo<float>::kCanonicalNaN;
-            return *reinterpret_cast<float *>(&not_a_number);
+            return *reinterpret_cast<float*>(&not_a_number);
           }
           return b;
         }
@@ -246,11 +245,11 @@
 }
 
 // If either operand is NaN return the other.
-void RiscVFMax(const Instruction *instruction) {
+void RiscVFMax(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<FPRegister::ValueType, float, float>(
       instruction, [instruction](float a, float b) -> float {
         if (FPTypeInfo<float>::IsSNaN(a) || FPTypeInfo<float>::IsSNaN(b)) {
-          auto *db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* db = instruction->Destination(1)->AllocateDataBuffer();
           db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           db->Submit();
         }
@@ -258,7 +257,7 @@
           if (FPTypeInfo<float>::IsNaN(b)) {
             FPTypeInfo<float>::UIntType not_a_number =
                 FPTypeInfo<float>::kCanonicalNaN;
-            return *reinterpret_cast<float *>(&not_a_number);
+            return *reinterpret_cast<float*>(&not_a_number);
           }
           return b;
         }
@@ -275,13 +274,13 @@
 // Negated multiply-add -((a * b) + c)
 // Negated multiply-subtract -((a * b) - c)
 
-void RiscVFMadd(const Instruction *instruction) {
+void RiscVFMadd(const Instruction* instruction) {
   using T = float;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         // Propagate any NaNs.
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -289,12 +288,12 @@
       });
 }
 
-void RiscVFMsub(const Instruction *instruction) {
+void RiscVFMsub(const Instruction* instruction) {
   using T = float;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -302,12 +301,12 @@
       });
 }
 
-void RiscVFNmadd(const Instruction *instruction) {
+void RiscVFNmadd(const Instruction* instruction) {
   using T = float;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -315,12 +314,12 @@
       });
 }
 
-void RiscVFNmsub(const Instruction *instruction) {
+void RiscVFNmsub(const Instruction* instruction) {
   using T = float;
   RiscVTernaryFloatNaNBoxOp<FPRegister::ValueType, T, T>(
       instruction, [instruction](T a, T b, T c) -> T {
         if ((std::isinf(a) && (b == 0.0)) || ((std::isinf(b) && (a == 0.0)))) {
-          auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+          auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
           flag_db->Set<uint32_t>(0, *FPExceptions::kInvalidOp);
           flag_db->Submit();
         }
@@ -329,14 +328,14 @@
 }
 
 // Set sign of the first operand to that of the second.
-void RiscVFSgnj(const Instruction *instruction) {
+void RiscVFSgnj(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<FPRegister::ValueType, FPUInt, FPUInt>(
       instruction,
       [](FPUInt a, FPUInt b) { return (a & 0x7fff'ffff) | (b & 0x8000'0000); });
 }
 
 // Set the sign of the first operand to the opposite of the second.
-void RiscVFSgnjn(const Instruction *instruction) {
+void RiscVFSgnjn(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<FPRegister::ValueType, FPUInt, FPUInt>(
       instruction, [](FPUInt a, FPUInt b) {
         return (a & 0x7fff'ffff) | (~b & 0x8000'0000);
@@ -345,7 +344,7 @@
 
 // Set the sign of the first operand to the xor of the signs of the two
 // operands.
-void RiscVFSgnjx(const Instruction *instruction) {
+void RiscVFSgnjx(const Instruction* instruction) {
   RiscVBinaryNaNBoxOp<FPRegister::ValueType, FPUInt, FPUInt>(
       instruction, [](FPUInt a, FPUInt b) {
         return (a & 0x7fff'ffff) | ((a ^ b) & 0x8000'0000);
@@ -353,31 +352,31 @@
 }
 
 // Convert signed 32 bit integer to float.
-void RiscVFCvtSw(const Instruction *instruction) {
+void RiscVFCvtSw(const Instruction* instruction) {
   RiscVUnaryFloatNaNBoxOp<FPRegister::ValueType, uint32_t, float, int32_t>(
       instruction, [](int32_t a) -> float { return static_cast<float>(a); });
 }
 
 // Convert unsigned 32 bit integer to float.
-void RiscVFCvtSwu(const Instruction *instruction) {
+void RiscVFCvtSwu(const Instruction* instruction) {
   RiscVUnaryFloatNaNBoxOp<FPRegister::ValueType, uint32_t, float, uint32_t>(
       instruction, [](uint32_t a) -> float { return static_cast<float>(a); });
 }
 
 // Convert signed 64 bit integer to float.
-void RiscVFCvtSl(const Instruction *instruction) {
+void RiscVFCvtSl(const Instruction* instruction) {
   RiscVUnaryFloatNaNBoxOp<FPRegister::ValueType, uint64_t, float, int64_t>(
       instruction, [](int64_t a) -> float { return static_cast<float>(a); });
 }
 
 // Convert unsigned 64 bit integer to float.
-void RiscVFCvtSlu(const Instruction *instruction) {
+void RiscVFCvtSlu(const Instruction* instruction) {
   RiscVUnaryFloatNaNBoxOp<FPRegister::ValueType, uint64_t, float, uint64_t>(
       instruction, [](uint64_t a) -> float { return static_cast<float>(a); });
 }
 
 // Single precision move instruction from integer to fp register file.
-void RiscVFMvwx(const Instruction *instruction) {
+void RiscVFMvwx(const Instruction* instruction) {
   RiscVUnaryNaNBoxOp<FPRegister::ValueType, uint32_t, uint32_t, uint32_t>(
       instruction, [](uint32_t a) -> uint32_t { return a; });
 }
@@ -388,15 +387,15 @@
 using XUint = typename std::make_unsigned<XRegister::ValueType>::type;
 using XInt = typename std::make_signed<XRegister::ValueType>::type;
 
-void RiscVFSw(const Instruction *instruction) {
+void RiscVFSw(const Instruction* instruction) {
   using T = uint32_t;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   if (state->mstatus()->fs() == 0) return;
   XUint base = generic::GetInstructionSource<XUint>(instruction, 0);
   XInt offset = generic::GetInstructionSource<XInt>(instruction, 1);
   XUint address = base + offset;
   T value = generic::GetInstructionSource<T>(instruction, 2);
-  auto *db = state->db_factory()->Allocate(sizeof(T));
+  auto* db = state->db_factory()->Allocate(sizeof(T));
   db->Set<T>(0, value);
   state->StoreMemory(instruction, address, db);
   db->DecRef();
@@ -405,39 +404,39 @@
 // Single precision conversion instructions.
 
 // Convert float to signed 32 bit integer.
-void RiscVFCvtWs(const Instruction *instruction) {
+void RiscVFCvtWs(const Instruction* instruction) {
   internal::RVFCvtWs<XInt>(instruction);
 }
 
 // Convert float to unsigned 32 bit integer.
-void RiscVFCvtWus(const Instruction *instruction) {
+void RiscVFCvtWus(const Instruction* instruction) {
   internal::RVFCvtWus<XUint>(instruction);
 }
 
 // Single precision move instruction to integer register file, with
 // sign-extension.
-void RiscVFMvxw(const Instruction *instruction) {
+void RiscVFMvxw(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, int32_t, int32_t>(instruction,
                                             [](int32_t a) { return a; });
 }
 
 // Single precision compare equal.
-void RiscVFCmpeq(const Instruction *instruction) {
+void RiscVFCmpeq(const Instruction* instruction) {
   internal::RVFCmpeq<XRegister>(instruction);
 }
 
 // Single precicion compare less than.
-void RiscVFCmplt(const Instruction *instruction) {
+void RiscVFCmplt(const Instruction* instruction) {
   internal::RVFCmplt<XRegister>(instruction);
 }
 
 // Single precision compare less than or equal.
-void RiscVFCmple(const Instruction *instruction) {
+void RiscVFCmple(const Instruction* instruction) {
   internal::RVFCmple<XRegister>(instruction);
 }
 
 // Single precision fp class instruction.
-void RiscVFClass(const Instruction *instruction) {
+void RiscVFClass(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, uint32_t, float>(
       instruction,
       [](float a) -> uint32_t { return static_cast<uint32_t>(ClassifyFP(a)); });
@@ -451,70 +450,70 @@
 using XUint = typename std::make_unsigned<XRegister::ValueType>::type;
 using XInt = typename std::make_signed<XRegister::ValueType>::type;
 
-void RiscVFSw(const Instruction *instruction) {
+void RiscVFSw(const Instruction* instruction) {
   using T = uint32_t;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   if (state->mstatus()->fs() == 0) return;
   XUint base = generic::GetInstructionSource<XUint>(instruction, 0);
   XInt offset = generic::GetInstructionSource<XInt>(instruction, 1);
   XUint address = base + offset;
   T value = generic::GetInstructionSource<T>(instruction, 2);
-  auto *db = state->db_factory()->Allocate(sizeof(T));
+  auto* db = state->db_factory()->Allocate(sizeof(T));
   db->Set<T>(0, value);
   state->StoreMemory(instruction, address, db);
   db->DecRef();
 }
 
 // Convert float to signed 32 bit integer in a 64 bit register.
-void RiscVFCvtWs(const Instruction *instruction) {
+void RiscVFCvtWs(const Instruction* instruction) {
   internal::RVFCvtWs<XInt>(instruction);
 }
 
 // Convert float to unsigned 32 bit integer in a 64 bit register.
-void RiscVFCvtWus(const Instruction *instruction) {
+void RiscVFCvtWus(const Instruction* instruction) {
   internal::RVFCvtWus<XUint>(instruction);
 }
 
 // Convert float to signed 64 bit integer.
-void RiscVFCvtLs(const Instruction *instruction) {
+void RiscVFCvtLs(const Instruction* instruction) {
   internal::RVFCvtLs<XInt>(instruction);
 }
 
 // Convert float to unsigned 64 bit integer.
-void RiscVFCvtLus(const Instruction *instruction) {
+void RiscVFCvtLus(const Instruction* instruction) {
   internal::RVFCvtLus<XUint>(instruction);
 }
 
 // Single precision move instruction to integer register file, with
 // sign-extension.
-void RiscVFMvxw(const Instruction *instruction) {
+void RiscVFMvxw(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, XInt, int32_t>(
       instruction, [](int32_t a) { return static_cast<XInt>(a); });
 }
 
 // Single precision move instruction from integer to fp register file.
-void RiscVFMvwx(const Instruction *instruction) {
+void RiscVFMvwx(const Instruction* instruction) {
   RiscVUnaryNaNBoxOp<FPRegister::ValueType, uint32_t, uint32_t, uint32_t>(
       instruction, [](uint32_t a) -> uint32_t { return a; });
 }
 
 // Single precision compare equal.
-void RiscVFCmpeq(const Instruction *instruction) {
+void RiscVFCmpeq(const Instruction* instruction) {
   internal::RVFCmpeq<XRegister>(instruction);
 }
 
 // Single precicion compare less than.
-void RiscVFCmplt(const Instruction *instruction) {
+void RiscVFCmplt(const Instruction* instruction) {
   internal::RVFCmplt<XRegister>(instruction);
 }
 
 // Single precision compare less than or equal.
-void RiscVFCmple(const Instruction *instruction) {
+void RiscVFCmple(const Instruction* instruction) {
   internal::RVFCmple<XRegister>(instruction);
 }
 
 // Single precision fp class instruction.
-void RiscVFClass(const Instruction *instruction) {
+void RiscVFClass(const Instruction* instruction) {
   RiscVUnaryOp<XRegister, uint32_t, float>(
       instruction,
       [](float a) -> uint32_t { return static_cast<uint32_t>(ClassifyFP(a)); });
diff --git a/riscv/riscv_f_instructions.h b/riscv/riscv_f_instructions.h
index e232c59..48deed2 100644
--- a/riscv/riscv_f_instructions.h
+++ b/riscv/riscv_f_instructions.h
@@ -29,62 +29,62 @@
 // Single precision arithmetic instructions each take 3 source operands and
 // 1 destination register operand. Source 0 and 1 are the data sources to the
 // operation, source 2 is the rounding mode specifier in the instruction.
-void RiscVFAdd(const Instruction *instruction);
-void RiscVFSub(const Instruction *instruction);
-void RiscVFMul(const Instruction *instruction);
-void RiscVFDiv(const Instruction *instruction);
+void RiscVFAdd(const Instruction* instruction);
+void RiscVFSub(const Instruction* instruction);
+void RiscVFMul(const Instruction* instruction);
+void RiscVFDiv(const Instruction* instruction);
 // Single precision load child instruction takes a single destination operand.
-void RiscVIFlwChild(const Instruction *instruction);
+void RiscVIFlwChild(const Instruction* instruction);
 // Single precision square root takes 2 source operands, the source register
 // and the rounding mode, and 1 destination register operand.
-void RiscVFSqrt(const Instruction *instruction);
+void RiscVFSqrt(const Instruction* instruction);
 // The single precision Min and Max instructions each take 2 source register
 // operands and 1 destination register operand.
-void RiscVFMin(const Instruction *instruction);
-void RiscVFMax(const Instruction *instruction);
+void RiscVFMin(const Instruction* instruction);
+void RiscVFMax(const Instruction* instruction);
 // The following four multiply-accumulate instruction each take 3 source
 // register operands (0, 1, 2) and the rounding mode (3), and one destination
 // register operand.
-void RiscVFMadd(const Instruction *instruction);
-void RiscVFMsub(const Instruction *instruction);
-void RiscVFNmadd(const Instruction *instruction);
-void RiscVFNmsub(const Instruction *instruction);
+void RiscVFMadd(const Instruction* instruction);
+void RiscVFMsub(const Instruction* instruction);
+void RiscVFNmadd(const Instruction* instruction);
+void RiscVFNmsub(const Instruction* instruction);
 // The single precision sign manipulation instructions take 2 source register
 // operands and a single destination register operand.
-void RiscVFSgnj(const Instruction *instruction);
-void RiscVFSgnjn(const Instruction *instruction);
-void RiscVFSgnjx(const Instruction *instruction);
+void RiscVFSgnj(const Instruction* instruction);
+void RiscVFSgnjn(const Instruction* instruction);
+void RiscVFSgnjx(const Instruction* instruction);
 // The single precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVFCvtSw(const Instruction *instruction);
-void RiscVFCvtSwu(const Instruction *instruction);
-void RiscVFCvtSl(const Instruction *instruction);
-void RiscVFCvtSlu(const Instruction *instruction);
+void RiscVFCvtSw(const Instruction* instruction);
+void RiscVFCvtSwu(const Instruction* instruction);
+void RiscVFCvtSl(const Instruction* instruction);
+void RiscVFCvtSlu(const Instruction* instruction);
 // The move instruction takes a single register source operand and a single
-void RiscVFMvwx(const Instruction *instruction);
+void RiscVFMvwx(const Instruction* instruction);
 
 namespace RV32 {
 
 // Store float instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVFSw(const Instruction *instruction);
+void RiscVFSw(const Instruction* instruction);
 // Single precision load child instruction takes a single destination operand.
 // The single precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVFCvtWs(const Instruction *instruction);
-void RiscVFCvtWus(const Instruction *instruction);
+void RiscVFCvtWs(const Instruction* instruction);
+void RiscVFCvtWus(const Instruction* instruction);
 // The move instruction takes a single register source operand and a single
 // destination register operand.
-void RiscVFMvxw(const Instruction *instruction);
+void RiscVFMvxw(const Instruction* instruction);
 // The single precision compare instructions take 2 source register operands
 // and a single destination register operand.
-void RiscVFCmpeq(const Instruction *instruction);
-void RiscVFCmplt(const Instruction *instruction);
-void RiscVFCmple(const Instruction *instruction);
+void RiscVFCmpeq(const Instruction* instruction);
+void RiscVFCmplt(const Instruction* instruction);
+void RiscVFCmple(const Instruction* instruction);
 // The single precision class instruction takes a single source register operand
 // and a single destination register operand.
-void RiscVFClass(const Instruction *instruction);
+void RiscVFClass(const Instruction* instruction);
 
 }  // namespace RV32
 
@@ -93,25 +93,25 @@
 // Store float instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVFSw(const Instruction *instruction);
+void RiscVFSw(const Instruction* instruction);
 // Single precision load child instruction takes a single destination operand.
 // The single precision conversion instructions each take 1 source register
 // operand, the rounding mode, and 1 destination register operand.
-void RiscVFCvtWs(const Instruction *instruction);
-void RiscVFCvtWus(const Instruction *instruction);
-void RiscVFCvtLs(const Instruction *instruction);
-void RiscVFCvtLus(const Instruction *instruction);
+void RiscVFCvtWs(const Instruction* instruction);
+void RiscVFCvtWus(const Instruction* instruction);
+void RiscVFCvtLs(const Instruction* instruction);
+void RiscVFCvtLus(const Instruction* instruction);
 // The move instruction takes a single register source operand and a single
 // destination register operand.
-void RiscVFMvxw(const Instruction *instruction);
+void RiscVFMvxw(const Instruction* instruction);
 // The single precision compare instructions take 2 source register operands
 // and a single destination register operand.
-void RiscVFCmpeq(const Instruction *instruction);
-void RiscVFCmplt(const Instruction *instruction);
-void RiscVFCmple(const Instruction *instruction);
+void RiscVFCmpeq(const Instruction* instruction);
+void RiscVFCmplt(const Instruction* instruction);
+void RiscVFCmple(const Instruction* instruction);
 // The single precision class instruction takes a single source register operand
 // and a single destination register operand.
-void RiscVFClass(const Instruction *instruction);
+void RiscVFClass(const Instruction* instruction);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_fp_host.h b/riscv/riscv_fp_host.h
index 044de96..0459309 100644
--- a/riscv/riscv_fp_host.h
+++ b/riscv/riscv_fp_host.h
@@ -32,7 +32,7 @@
   virtual void SetRiscVFcsr(uint32_t riscv_fcsr) = 0;
 };
 
-HostFloatingPointInterface *GetHostFloatingPointInterface();
+HostFloatingPointInterface* GetHostFloatingPointInterface();
 
 // This class is used to set the native fp status and rounding mode to the
 // current simulated status and rounding mode, and then copying the native
@@ -40,13 +40,13 @@
 class ScopedFPStatus {
  public:
   ScopedFPStatus() = delete;
-  explicit ScopedFPStatus(HostFloatingPointInterface *fp_interface);
-  ScopedFPStatus(HostFloatingPointInterface *fp_interface, uint32_t rm);
-  ScopedFPStatus(HostFloatingPointInterface *fp_interface, FPRoundingMode rm);
+  explicit ScopedFPStatus(HostFloatingPointInterface* fp_interface);
+  ScopedFPStatus(HostFloatingPointInterface* fp_interface, uint32_t rm);
+  ScopedFPStatus(HostFloatingPointInterface* fp_interface, FPRoundingMode rm);
   ~ScopedFPStatus();
 
  private:
-  HostFloatingPointInterface *fp_interface_ = nullptr;
+  HostFloatingPointInterface* fp_interface_ = nullptr;
   uint32_t host_rm_ = 0;
   uint64_t cpu_fp_status_ = 0;
 };
@@ -56,9 +56,9 @@
 class ScopedFPRoundingMode {
  public:
   ScopedFPRoundingMode();
-  explicit ScopedFPRoundingMode(HostFloatingPointInterface *fp_interface);
-  ScopedFPRoundingMode(HostFloatingPointInterface *fp_interface, uint32_t rm);
-  ScopedFPRoundingMode(HostFloatingPointInterface *fp_interface,
+  explicit ScopedFPRoundingMode(HostFloatingPointInterface* fp_interface);
+  ScopedFPRoundingMode(HostFloatingPointInterface* fp_interface, uint32_t rm);
+  ScopedFPRoundingMode(HostFloatingPointInterface* fp_interface,
                        FPRoundingMode rm);
   ~ScopedFPRoundingMode();
 
diff --git a/riscv/riscv_fp_host_arm.cc b/riscv/riscv_fp_host_arm.cc
index a18ded8..aaf9b73 100644
--- a/riscv/riscv_fp_host_arm.cc
+++ b/riscv/riscv_fp_host_arm.cc
@@ -12,7 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "absl/log/log.h"
+#include <cstdint>
+
 #include "mpact/sim/generic/type_helpers.h"
 #include "riscv/riscv_fp_host.h"
 #include "riscv/riscv_fp_info.h"
@@ -170,13 +171,13 @@
 };
 
 // Factory function.
-HostFloatingPointInterface *GetHostFloatingPointInterface() {
+HostFloatingPointInterface* GetHostFloatingPointInterface() {
   return new ArmFloatingPointInterface();
 }
 
 #pragma STDC FENV_ACCESS ON
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface)
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface)
     : fp_interface_(fp_interface) {
   uint64_t fpsr, fpcr;
   asm volatile(
@@ -186,8 +187,8 @@
 
   // Pack fpsr and fpcr into cpu_fp_status
   cpu_fp_status_ = (fpsr << 32) | (fpcr & 0xffff'ffff);
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface_);
   // Get the translated version of the simulated RiscV status.
   auto arm_fp_regs = host_fp_interface->arm_fp_regs();
   // Save current "dynamic" rounding mode.
@@ -201,7 +202,7 @@
         "r"(arm_fp_regs.fpcr));  // NOLINT(google3-runtime-inline-assembly)
 }
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface,
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface,
                                uint32_t riscv_rm)
     : fp_interface_(fp_interface) {
   uint64_t fpsr, fpcr;
@@ -212,8 +213,8 @@
 
   // Pack fpsr and fpcr into cpu_fp_status
   cpu_fp_status_ = (fpsr << 32) | (fpcr & 0xffff'ffff);
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface_);
   // Get the translated version of the simulated RiscV status.
   auto arm_fp_regs = host_fp_interface->arm_fp_regs();
   // Save current "dynamic" rounding mode.
@@ -232,7 +233,7 @@
         "r"(arm_fp_regs.fpcr));  // NOLINT(google3-runtime-inline-assembly)
 }
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface,
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface,
                                FPRoundingMode riscv_rm)
     : fp_interface_(fp_interface) {
   uint64_t fpsr, fpcr;
@@ -243,8 +244,8 @@
 
   // Pack fpsr and fpcr into cpu_fp_status
   cpu_fp_status_ = (fpsr << 32) | (fpcr & 0xffff'ffff);
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface_);
   // Get the translated version of the simulated RiscV status.
   auto arm_fp_regs = host_fp_interface->arm_fp_regs();
   // Save current "dynamic" rounding mode.
@@ -270,8 +271,8 @@
                : "=r"(fpsr));  // NOLINT(google3-runtime-inline-assembly
 
   // Save the simulated status.
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface_);
   host_fp_interface->set_arm_fp_regs({host_rm_, fpsr});
   // Restore the saved host status.
   fpcr = cpu_fp_status_ & 0xffff'ffff;
@@ -284,7 +285,7 @@
 }
 
 ScopedFPRoundingMode::ScopedFPRoundingMode(
-    HostFloatingPointInterface *fp_interface, uint32_t riscv_rm_value) {
+    HostFloatingPointInterface* fp_interface, uint32_t riscv_rm_value) {
   uint64_t fpsr, fpcr;
   asm volatile(
       "MRS %x0, FPSR\n"
@@ -293,8 +294,8 @@
 
   // Pack fpsr and fpcr into cpu_fp_status
   cpu_fp_status_ = (fpsr << 32) | (fpcr & 0xffff'ffff);
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface);
   // Get the translated version of the simulated RiscV status.
   auto arm_fp_regs = host_fp_interface->arm_fp_regs();
   if (riscv_rm_value != 0b111) {
@@ -312,7 +313,7 @@
 }
 
 ScopedFPRoundingMode::ScopedFPRoundingMode(
-    HostFloatingPointInterface *fp_interface, FPRoundingMode rm) {
+    HostFloatingPointInterface* fp_interface, FPRoundingMode rm) {
   uint64_t fpsr, fpcr;
   asm volatile(
       "MRS %x0, FPSR\n"
@@ -321,8 +322,8 @@
 
   // Pack fpsr and fpcr into cpu_fp_status
   cpu_fp_status_ = (fpsr << 32) | (fpcr & 0xffff'ffff);
-  auto *host_fp_interface =
-      static_cast<ArmFloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<ArmFloatingPointInterface*>(fp_interface);
   // Get the translated version of the simulated RiscV status.
   auto arm_fp_regs = host_fp_interface->arm_fp_regs();
   auto rm_value = static_cast<uint32_t>(rm);
diff --git a/riscv/riscv_fp_host_x86.cc b/riscv/riscv_fp_host_x86.cc
index be3bb03..cb5ba50 100644
--- a/riscv/riscv_fp_host_x86.cc
+++ b/riscv/riscv_fp_host_x86.cc
@@ -198,20 +198,20 @@
 };
 
 // Factory function.
-HostFloatingPointInterface *GetHostFloatingPointInterface() {
+HostFloatingPointInterface* GetHostFloatingPointInterface() {
   return new X86FloatingPointInterface();
 }
 
 #pragma STDC FENV_ACCESS ON
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface)
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface)
     : fp_interface_(fp_interface) {
   // The host processor status is saved in cpu_fp_status_.
   uint32_t sim_status = 0;
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "+X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface_);
   // Get the translated version of the simulated RiscV status.
   sim_status = host_fp_interface->x86_status();
   // Save current "dynamic" rounding mode.
@@ -222,15 +222,15 @@
                : "m"(sim_status));
 }
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface,
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface,
                                uint32_t rm)
     : fp_interface_(fp_interface) {
   // The host processor status is saved in cpu_fp_status_.
   uint32_t sim_status = 0;
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "=X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface_);
   sim_status = host_fp_interface->x86_status();
   // Save current "dynamic" rounding mode.
   host_rm_ = sim_status & 0x6000;
@@ -245,15 +245,15 @@
                : "m"(sim_status));
 }
 
-ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface *fp_interface,
+ScopedFPStatus::ScopedFPStatus(HostFloatingPointInterface* fp_interface,
                                FPRoundingMode rm)
     : fp_interface_(fp_interface) {
   // The host processor status is saved in cpu_fp_status_.
   uint32_t sim_status = 0;
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "=X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface);
   sim_status = host_fp_interface->x86_status();
   // Save current "dynamic" rounding mode.
   host_rm_ = sim_status & 0x6000;
@@ -275,8 +275,8 @@
   asm volatile(  // NOLINT(google3-runtime-inline-assembly)
       "stmxcsr %0\n"
       : "=m"(x86_sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface_);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface_);
   // Save the fp status of the simulated instructions.
   uint32_t sim_status = ((x86_sim_status) & 0x1fff) | host_rm_;
   // Save the new status as the x86 version of the RiscV status.
@@ -288,13 +288,13 @@
 }
 
 ScopedFPRoundingMode::ScopedFPRoundingMode(
-    HostFloatingPointInterface *fp_interface) {
+    HostFloatingPointInterface* fp_interface) {
   uint32_t sim_status = 0;
   // Get current x86 status and save it in cpu_fp_status_.
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "=X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface);
   sim_status = host_fp_interface->x86_status();
   asm volatile("ldmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                :
@@ -302,13 +302,13 @@
 }
 
 ScopedFPRoundingMode::ScopedFPRoundingMode(
-    HostFloatingPointInterface *fp_interface, uint32_t rm) {
+    HostFloatingPointInterface* fp_interface, uint32_t rm) {
   uint32_t sim_status = 0;
   // Get current x86 status and save it in cpu_fp_status_.
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "=X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface);
   sim_status = host_fp_interface->x86_status();
   if (rm != 0b111) {
     // Override rounding mode with that specified in the instruction.
@@ -321,13 +321,13 @@
 }
 
 ScopedFPRoundingMode::ScopedFPRoundingMode(
-    HostFloatingPointInterface *fp_interface, FPRoundingMode rm) {
+    HostFloatingPointInterface* fp_interface, FPRoundingMode rm) {
   uint32_t sim_status = 0;
   // Get current x86 status and save it in cpu_fp_status_.
   asm volatile("stmxcsr %0\n"  // NOLINT(google3-runtime-inline-assembly)
                : "=m"(cpu_fp_status_), "=X"(sim_status));
-  auto *host_fp_interface =
-      static_cast<X86FloatingPointInterface *>(fp_interface);
+  auto* host_fp_interface =
+      static_cast<X86FloatingPointInterface*>(fp_interface);
   sim_status = host_fp_interface->x86_status();
   auto rm_value = static_cast<uint32_t>(rm);
   if (rm_value != 0b111) {
diff --git a/riscv/riscv_fp_state.cc b/riscv/riscv_fp_state.cc
index 543d219..68b989b 100644
--- a/riscv/riscv_fp_state.cc
+++ b/riscv/riscv_fp_state.cc
@@ -50,7 +50,7 @@
   LOG(ERROR) << status.message();
 }
 
-RiscVFPState::RiscVFPState(RiscVCsrSet *csr_set, ArchState *rv_state)
+RiscVFPState::RiscVFPState(RiscVCsrSet* csr_set, ArchState* rv_state)
     : rv_state_(rv_state) {
   fcsr_ = new RiscVFcsr(this);
   frm_ = new RiscVFrm(this);
@@ -95,7 +95,7 @@
 }
 
 // The RiscV fp csr.
-RiscVFcsr::RiscVFcsr(RiscVFPState *fp_state)
+RiscVFcsr::RiscVFcsr(RiscVFPState* fp_state)
     : RiscVSimpleCsr<uint32_t>(kFcsrName, RiscVCsrEnum::kFCsr, kFcsrInitial,
                                kFcsrReadMask, kFcsrWriteMask,
                                fp_state->rv_state()),
@@ -124,7 +124,7 @@
 void RiscVFcsr::Write(uint64_t value) { Write(static_cast<uint32_t>(value)); }
 
 // RiscVFflags translates reads and writes into reads and writes of fcsr.
-RiscVFflags::RiscVFflags(RiscVFPState *fp_state)
+RiscVFflags::RiscVFflags(RiscVFPState* fp_state)
     : RiscVSimpleCsr<uint32_t>(kFflagsName, RiscVCsrEnum::kFFlags,
                                kFflagsInitial, kFflagsReadMask,
                                kFflagsWriteMask, fp_state->rv_state()),
@@ -149,7 +149,7 @@
 
 // RiscV rm (rounding mode) csr translates reads and writes into reads
 // and writes of fcsr.
-RiscVFrm::RiscVFrm(RiscVFPState *fp_state)
+RiscVFrm::RiscVFrm(RiscVFPState* fp_state)
     : RiscVSimpleCsr<uint32_t>(kFrmName, RiscVCsrEnum::kFrm, kFrmInitial,
                                kFrmReadMask, kFrmWriteMask,
                                fp_state->rv_state()),
diff --git a/riscv/riscv_fp_state.h b/riscv/riscv_fp_state.h
index f5d8a1e..337d201 100644
--- a/riscv/riscv_fp_state.h
+++ b/riscv/riscv_fp_state.h
@@ -35,7 +35,7 @@
 class RiscVFcsr : public RiscVSimpleCsr<uint32_t> {
  public:
   RiscVFcsr() = delete;
-  explicit RiscVFcsr(RiscVFPState *fp_state);
+  explicit RiscVFcsr(RiscVFPState* fp_state);
   ~RiscVFcsr() override = default;
 
   // Overrides.
@@ -45,14 +45,14 @@
   void Write(uint64_t value) override;
 
  private:
-  RiscVFPState *fp_state_;
+  RiscVFPState* fp_state_;
 };
 
 // Floating point rounding mode csr.
 class RiscVFrm : public RiscVSimpleCsr<uint32_t> {
  public:
   RiscVFrm() = delete;
-  explicit RiscVFrm(RiscVFPState *fp_state);
+  explicit RiscVFrm(RiscVFPState* fp_state);
   ~RiscVFrm() override = default;
 
   // Overrides.
@@ -66,14 +66,14 @@
   void Set(uint64_t value) override { Set(static_cast<uint32_t>(value)); }
 
  private:
-  RiscVFPState *fp_state_;
+  RiscVFPState* fp_state_;
 };
 
 // Floating point status flags csr.
 class RiscVFflags : public RiscVSimpleCsr<uint32_t> {
  public:
   RiscVFflags() = delete;
-  explicit RiscVFflags(RiscVFPState *fp_state);
+  explicit RiscVFflags(RiscVFPState* fp_state);
   ~RiscVFflags() override = default;
 
   // Overrides.
@@ -87,14 +87,14 @@
   void Set(uint64_t value) override { Set(static_cast<uint32_t>(value)); }
 
  private:
-  RiscVFPState *fp_state_;
+  RiscVFPState* fp_state_;
 };
 
 class RiscVFPState {
  public:
   RiscVFPState() = delete;
-  RiscVFPState(const RiscVFPState &) = delete;
-  explicit RiscVFPState(RiscVCsrSet *csr_set, ArchState *rv_state);
+  RiscVFPState(const RiscVFPState&) = delete;
+  explicit RiscVFPState(RiscVCsrSet* csr_set, ArchState* rv_state);
   ~RiscVFPState();
 
   FPRoundingMode GetRoundingMode() const;
@@ -104,22 +104,22 @@
   bool rounding_mode_valid() const { return rounding_mode_valid_; }
 
   // FP CSRs.
-  RiscVFcsr *fcsr() const { return fcsr_; }
-  RiscVFrm *frm() const { return frm_; }
-  RiscVFflags *fflags() const { return fflags_; }
+  RiscVFcsr* fcsr() const { return fcsr_; }
+  RiscVFrm* frm() const { return frm_; }
+  RiscVFflags* fflags() const { return fflags_; }
   // Parent state.
-  ArchState *rv_state() const { return rv_state_; }
+  ArchState* rv_state() const { return rv_state_; }
   // Host interface.
-  HostFloatingPointInterface *host_fp_interface() const {
+  HostFloatingPointInterface* host_fp_interface() const {
     return host_fp_interface_;
   }
 
  private:
-  ArchState *rv_state_;
-  RiscVFcsr *fcsr_ = nullptr;
-  RiscVFrm *frm_ = nullptr;
-  RiscVFflags *fflags_ = nullptr;
-  HostFloatingPointInterface *host_fp_interface_;
+  ArchState* rv_state_;
+  RiscVFcsr* fcsr_ = nullptr;
+  RiscVFrm* frm_ = nullptr;
+  RiscVFflags* fflags_ = nullptr;
+  HostFloatingPointInterface* host_fp_interface_;
 
   bool rounding_mode_valid_ = true;
   FPRoundingMode rounding_mode_ = FPRoundingMode::kRoundToNearest;
diff --git a/riscv/riscv_getter_helpers.h b/riscv/riscv_getter_helpers.h
index 408da03..2b0da3d 100644
--- a/riscv/riscv_getter_helpers.h
+++ b/riscv/riscv_getter_helpers.h
@@ -39,23 +39,23 @@
 using ::mpact::sim::generic::SourceOperandInterface;
 
 using SourceOpGetterMap =
-    absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface *()>>;
+    absl::flat_hash_map<int, absl::AnyInvocable<SourceOperandInterface*()>>;
 using ListSourceOpGetterMap = absl::flat_hash_map<
-    int, absl::AnyInvocable<std::vector<SourceOperandInterface *>()>>;
+    int, absl::AnyInvocable<std::vector<SourceOperandInterface*>()>>;
 using DestOpGetterMap =
     absl::flat_hash_map<int,
-                        absl::AnyInvocable<DestinationOperandInterface *(int)>>;
+                        absl::AnyInvocable<DestinationOperandInterface*(int)>>;
 using ListDestOpGetterMap = absl::flat_hash_map<
-    int, absl::AnyInvocable<std::vector<DestinationOperandInterface *>(int)>>;
+    int, absl::AnyInvocable<std::vector<DestinationOperandInterface*>(int)>>;
 using SimpleResourceGetterMap =
-    absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource *()>>;
+    absl::flat_hash_map<int, absl::AnyInvocable<generic::SimpleResource*()>>;
 using ComplexResourceGetterMap = absl::flat_hash_map<
-    int, absl::AnyInvocable<ResourceOperandInterface *(int, int)>>;
+    int, absl::AnyInvocable<ResourceOperandInterface*(int, int)>>;
 
 // Helper function to insert and entry into a "getter" map. This is used in
 // the riscv_*_getter.h files.
 template <typename M, typename E, typename G>
-inline void Insert(M &map, E entry, G getter) {
+inline void Insert(M& map, E entry, G getter) {
   if (!map.contains(static_cast<int>(entry))) {
     map.insert(std::make_pair(static_cast<int>(entry), getter));
   } else {
@@ -64,7 +64,7 @@
 }
 
 template <typename M, typename E1, typename E2, typename G>
-inline void Insert(M &map, E1 entry1, E2 entry2, G getter) {
+inline void Insert(M& map, E1 entry1, E2 entry2, G getter) {
   auto key = std::tie(entry1, entry2);
   if (!map.contains(key)) {
     map.insert(std::make_pair(key, getter));
@@ -75,48 +75,48 @@
 
 // Generic helper functions to create register operands.
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(RiscVState *state,
+inline DestinationOperandInterface* GetRegisterDestinationOp(RiscVState* state,
                                                              std::string name,
                                                              int latency) {
-  auto *reg = state->GetRegister<RegType>(name).first;
+  auto* reg = state->GetRegister<RegType>(name).first;
   return reg->CreateDestinationOperand(latency);
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetRegisterDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateDestinationOperand(latency, op_name);
+inline DestinationOperandInterface* GetRegisterDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename T>
-inline DestinationOperandInterface *GetCSRSetBitsDestinationOp(
-    RiscVState *state, std::string name, int latency, std::string op_name) {
+inline DestinationOperandInterface* GetCSRSetBitsDestinationOp(
+    RiscVState* state, std::string name, int latency, std::string op_name) {
   auto result = state->csr_set()->GetCsr(name);
   if (!result.ok()) {
     LOG(ERROR) << "No such CSR '" << name << "'";
     return nullptr;
   }
-  auto *csr = result.value();
-  auto *op = csr->CreateSetDestinationOperand(latency, op_name);
+  auto* csr = result.value();
+  auto* op = csr->CreateSetDestinationOperand(latency, op_name);
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand();
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand();
   return op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetRegisterSourceOp(RiscVState* state,
                                                    std::string name,
                                                    std::string op_name) {
-  auto *reg = state->GetRegister<RegType>(name).first;
-  auto *op = reg->CreateSourceOperand(op_name);
+  auto* reg = state->GetRegister<RegType>(name).first;
+  auto* op = reg->CreateSourceOperand(op_name);
   return op;
 }
 
diff --git a/riscv/riscv_getters.h b/riscv/riscv_getters.h
index 4aee8bb..7023fd1 100644
--- a/riscv/riscv_getters.h
+++ b/riscv/riscv_getters.h
@@ -53,16 +53,16 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVSourceGetters(SourceOpGetterMap &getter_map,
-                           RiscVEncodingCommon *common) {
+void AddRiscVSourceGetters(SourceOpGetterMap& getter_map,
+                           RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kAAq, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kAAq, [common]() -> SourceOperandInterface* {
     if (Extractors::Inst32Format::ExtractAq(common->inst_word())) {
       return new IntLiteralOperand<1>();
     }
     return new IntLiteralOperand<0>();
   });
-  Insert(getter_map, *Enum::kARl, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kARl, [common]() -> SourceOperandInterface* {
     if (Extractors::Inst32Format::ExtractRl(common->inst_word())) {
       return new generic::IntLiteralOperand<1>();
     }
@@ -118,40 +118,40 @@
     if (!res.ok()) {
       return new ImmediateOperand<uint32_t>(csr_indx);
     }
-    auto *csr = res.value();
+    auto* csr = res.value();
     return new ImmediateOperand<uint32_t>(csr_indx, csr->name());
   });
-  Insert(getter_map, *Enum::kDrs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kDrs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs1(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kDrs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kDrs2, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs2(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kDrs3, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kDrs3, [common]() -> SourceOperandInterface* {
     int num = Extractors::R4Type::ExtractRs3(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kFrs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs1(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kFrs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs2, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs2(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kFrs3, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs3, [common]() -> SourceOperandInterface* {
     int num = Extractors::R4Type::ExtractRs3(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
@@ -229,14 +229,14 @@
     return new ImmediateOperand<uint32_t>(
         Extractors::Fence::ExtractPred(common->inst_word()));
   });
-  Insert(getter_map, *Enum::kRd, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRd, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRd(common->inst_word());
     if (num == 0) return new generic::IntLiteralOperand<0>({1});
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kXregPrefix, num),
         kXRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kRm, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRm, [common]() -> SourceOperandInterface* {
     int rm = Extractors::RType::ExtractFunc3(common->inst_word());
     switch (rm) {
       case 0:
@@ -259,14 +259,14 @@
         return nullptr;
     }
   });
-  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs1(common->inst_word());
     if (num == 0) return new generic::IntLiteralOperand<0>({1});
     return GetRegisterSourceOp<IntRegister>(
         common->state(), absl::StrCat(RiscVState::kXregPrefix, num),
         kXRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kRs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRs2, [common]() -> SourceOperandInterface* {
     int num = Extractors::RType::ExtractRs2(common->inst_word());
     if (num == 0) return new generic::IntLiteralOperand<0>({1});
     return GetRegisterSourceOp<IntRegister>(
@@ -301,8 +301,8 @@
 // to construct the register operand.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVDestGetters(DestOpGetterMap &getter_map,
-                         RiscVEncodingCommon *common) {
+void AddRiscVDestGetters(DestOpGetterMap& getter_map,
+                         RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kC3drd, [common](int latency) {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
@@ -327,26 +327,26 @@
                                                  RiscVState::kCsrName, latency);
   });
   Insert(getter_map, *Enum::kDrd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            int num = Extractors::RType::ExtractRd(common->inst_word());
            return GetRegisterDestinationOp<IntRegister>(
                common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
                latency, kFRegisterAliases[num]);
          });
   Insert(getter_map, *Enum::kFrd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            int num = Extractors::RType::ExtractRd(common->inst_word());
            return GetRegisterDestinationOp<IntRegister>(
                common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
                latency, kFRegisterAliases[num]);
          });
   Insert(getter_map, *Enum::kNextPc,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            return GetRegisterDestinationOp<IntRegister>(
                common->state(), RiscVState::kPcName, latency);
          });
   Insert(getter_map, *Enum::kRd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            int num = Extractors::RType::ExtractRd(common->inst_word());
            if (num == 0) {
              return GetRegisterDestinationOp<IntRegister>(common->state(),
@@ -358,7 +358,7 @@
            }
          });
   Insert(getter_map, *Enum::kX0,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            return GetRegisterDestinationOp<IntRegister>(
                common->state(), "X0Dest", 0, kXRegisterAliases[0]);
          });
@@ -384,99 +384,99 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors>
-void AddRiscVSimpleResourceGetters(SimpleResourceGetterMap &getter_map,
-                                   RiscVEncodingCommon *common) {
-  Insert(getter_map, *Enum::kC3drd, [common]() -> generic::SimpleResource * {
+void AddRiscVSimpleResourceGetters(SimpleResourceGetterMap& getter_map,
+                                   RiscVEncodingCommon* common) {
+  Insert(getter_map, *Enum::kC3drd, [common]() -> generic::SimpleResource* {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kC3drs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kC3drs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::CS::ExtractCsRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kC3rd, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kC3rd, [common]() -> generic::SimpleResource* {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kC3rs1, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kC3rs1, [common]() -> generic::SimpleResource* {
     int num = Extractors::CS::ExtractCsRs1(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kC3rs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kC3rs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::CS::ExtractCsRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kCdrs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kCdrs2, [common]() -> generic::SimpleResource* {
     auto num = Extractors::CR::ExtractRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kCrs1, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kCrs1, [common]() -> generic::SimpleResource* {
     auto num = Extractors::CR::ExtractRs1(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kCrs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kCrs2, [common]() -> generic::SimpleResource* {
     auto num = Extractors::CR::ExtractRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kCsr, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kCsr, [common]() -> generic::SimpleResource* {
     return common->resource_pool()->GetOrAddResource("csr");
   });
-  Insert(getter_map, *Enum::kDrd, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kDrd, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRd(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kDrs1, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kDrs1, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRs1(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kDrs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kDrs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kDrs3, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kDrs3, [common]() -> generic::SimpleResource* {
     int num = Extractors::R4Type::ExtractRs3(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kFrd, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kFrd, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRd(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kFrs1, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kFrs1, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRs1(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kFrs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kFrs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::RType::ExtractRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kFrs3, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kFrs3, [common]() -> generic::SimpleResource* {
     int num = Extractors::R4Type::ExtractRs3(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kNextPc, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kNextPc, [common]() -> generic::SimpleResource* {
     return common->resource_pool()->GetOrAddResource("next_pc");
   });
-  Insert(getter_map, *Enum::kRd, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kRd, [common]() -> generic::SimpleResource* {
     auto num = Extractors::RType::ExtractRd(common->inst_word());
     if (num == 0) return nullptr;
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kRs1, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kRs1, [common]() -> generic::SimpleResource* {
     auto num = Extractors::RType::ExtractRs1(common->inst_word());
     if (num == 0) return nullptr;
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
-  Insert(getter_map, *Enum::kRs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kRs2, [common]() -> generic::SimpleResource* {
     auto num = Extractors::RType::ExtractRs2(common->inst_word());
     if (num == 0) return nullptr;
     return common->resource_pool()->GetOrAddResource(absl::StrCat("x", num));
   });
   Insert(getter_map, *Enum::kX0,
-         []() -> generic::SimpleResource * { return nullptr; });
-  Insert(getter_map, *Enum::kX1, [common]() -> generic::SimpleResource * {
+         []() -> generic::SimpleResource* { return nullptr; });
+  Insert(getter_map, *Enum::kX1, [common]() -> generic::SimpleResource* {
     return common->resource_pool()->GetOrAddResource("x1");
   });
-  Insert(getter_map, *Enum::kX2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kX2, [common]() -> generic::SimpleResource* {
     return common->resource_pool()->GetOrAddResource("x2");
   });
 }
diff --git a/riscv/riscv_getters_rv32.h b/riscv/riscv_getters_rv32.h
index 0283882..93b3505 100644
--- a/riscv/riscv_getters_rv32.h
+++ b/riscv/riscv_getters_rv32.h
@@ -50,8 +50,8 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscV32SourceGetters(SourceOpGetterMap &getter_map,
-                             RiscVEncodingCommon *common) {
+void AddRiscV32SourceGetters(SourceOpGetterMap& getter_map,
+                             RiscVEncodingCommon* common) {
   // Source operand getters.
   Insert(getter_map, *Enum::kC3frs2, [common]() {
     auto num = Extractors::CS::ExtractCsRs2(common->inst_word());
@@ -74,8 +74,8 @@
 // to construct the register operand.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscV32DestGetters(DestOpGetterMap &getter_map,
-                           RiscVEncodingCommon *common) {
+void AddRiscV32DestGetters(DestOpGetterMap& getter_map,
+                           RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kC3frd, [common](int latency) {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
@@ -90,17 +90,17 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors>
-void AddRiscV32SimpleResourceGetters(SimpleResourceGetterMap &getter_map,
-                                     RiscVEncodingCommon *common) {
-  Insert(getter_map, *Enum::kC3frd, [common]() -> generic::SimpleResource * {
+void AddRiscV32SimpleResourceGetters(SimpleResourceGetterMap& getter_map,
+                                     RiscVEncodingCommon* common) {
+  Insert(getter_map, *Enum::kC3frd, [common]() -> generic::SimpleResource* {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kC3frs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kC3frs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::CS::ExtractCsRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
-  Insert(getter_map, *Enum::kCfrs2, [common]() -> generic::SimpleResource * {
+  Insert(getter_map, *Enum::kCfrs2, [common]() -> generic::SimpleResource* {
     int num = Extractors::CR::ExtractRs2(common->inst_word());
     return common->resource_pool()->GetOrAddResource(absl::StrCat("d", num));
   });
diff --git a/riscv/riscv_getters_rv64.h b/riscv/riscv_getters_rv64.h
index 15583c8..7fe52cc 100644
--- a/riscv/riscv_getters_rv64.h
+++ b/riscv/riscv_getters_rv64.h
@@ -46,8 +46,8 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscV64SourceGetters(SourceOpGetterMap &getter_map,
-                             RiscVEncodingCommon *common) {
+void AddRiscV64SourceGetters(SourceOpGetterMap& getter_map,
+                             RiscVEncodingCommon* common) {
   // Source operand getters.
   Insert(getter_map, *Enum::kIUimm6, [common]() {
     return new ImmediateOperand<uint32_t>(
@@ -62,8 +62,8 @@
 // to construct the register operand.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscV64DestGetters(DestOpGetterMap &getter_map,
-                           RiscVEncodingCommon *common) {
+void AddRiscV64DestGetters(DestOpGetterMap& getter_map,
+                           RiscVEncodingCommon* common) {
   // Empty.
 }
 
@@ -73,8 +73,8 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors>
-void AddRiscV64SimpleResourceGetters(SimpleResourceGetterMap &getter_map,
-                                     RiscVEncodingCommon *common) {
+void AddRiscV64SimpleResourceGetters(SimpleResourceGetterMap& getter_map,
+                                     RiscVEncodingCommon* common) {
   // Empty.
 }
 
diff --git a/riscv/riscv_getters_vector.h b/riscv/riscv_getters_vector.h
index 9a41a15..f68e2a6 100644
--- a/riscv/riscv_getters_vector.h
+++ b/riscv/riscv_getters_vector.h
@@ -16,7 +16,6 @@
 #define THIRD_PARTY_MPACT_RISCV_RISCV_GETTERS_VECTOR_H_
 
 #include <cstdint>
-#include <new>
 #include <string>
 #include <vector>
 
@@ -47,8 +46,8 @@
 constexpr int kNumRegTable[8] = {8, 1, 2, 1, 4, 1, 2, 1};
 
 template <typename RegType>
-inline void GetVRegGroup(RiscVState *state, int reg_num,
-                         std::vector<generic::RegisterBase *> *vreg_group) {
+inline void GetVRegGroup(RiscVState* state, int reg_num,
+                         std::vector<generic::RegisterBase*>* vreg_group) {
   // The number of registers in a vector register group depends on the register
   // index: 0, 8, 16, 24 each have 8 registers, 4, 12, 20, 28 each have 4,
   // 2, 6, 10, 14, 18, 22, 26, 30 each have two, and all odd numbered register
@@ -60,53 +59,53 @@
   }
 }
 template <typename RegType>
-inline SourceOperandInterface *GetVectorRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorRegisterSourceOp(RiscVState* state,
                                                          int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
-  std::vector<generic::RegisterBase *> vreg_group;
+inline DestinationOperandInterface* GetVectorRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
+  std::vector<generic::RegisterBase*> vreg_group;
   GetVRegGroup<RegType>(state, reg_num, &vreg_group);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
 
 template <typename RegType>
-inline SourceOperandInterface *GetVectorMaskRegisterSourceOp(RiscVState *state,
+inline SourceOperandInterface* GetVectorMaskRegisterSourceOp(RiscVState* state,
                                                              int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_src_op = new RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group),
+  auto* v_src_op = new RV32VectorSourceOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group),
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_src_op;
 }
 
 template <typename RegType>
-inline DestinationOperandInterface *GetVectorMaskRegisterDestinationOp(
-    RiscVState *state, int latency, int reg_num) {
+inline DestinationOperandInterface* GetVectorMaskRegisterDestinationOp(
+    RiscVState* state, int latency, int reg_num) {
   // Mask register groups only have a single register.
-  std::vector<generic::RegisterBase *> vreg_group;
+  std::vector<generic::RegisterBase*> vreg_group;
   vreg_group.push_back(
       state
           ->GetRegister<RegType>(absl::StrCat(RiscVState::kVregPrefix, reg_num))
           .first);
-  auto *v_dst_op = new RV32VectorDestinationOperand(
-      absl::Span<generic::RegisterBase *>(vreg_group), latency,
+  auto* v_dst_op = new RV32VectorDestinationOperand(
+      absl::Span<generic::RegisterBase*>(vreg_group), latency,
       absl::StrCat(RiscVState::kVregPrefix, reg_num));
   return v_dst_op;
 }
@@ -116,14 +115,14 @@
 // for the instruction set being decoded. The Extractors parameter is used to
 // get the correct instruction format extractor for the instruction set.
 template <typename Enum, typename Extractors, typename VectorRegister>
-void AddRiscVVectorSourceGetters(SourceOpGetterMap &getter_map,
-                                 RiscVEncodingCommon *common) {
+void AddRiscVVectorSourceGetters(SourceOpGetterMap& getter_map,
+                                 RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kVd, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVd, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VArith::ExtractVd(common->inst_word());
     return GetVectorRegisterSourceOp<VectorRegister>(common->state(), num);
   });
-  Insert(getter_map, *Enum::kVmask, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVmask, [common]() -> SourceOperandInterface* {
     auto vm = Extractors::VArith::ExtractVm(common->inst_word());
     if (vm == 1) {
       // Unmasked, return the True mask.
@@ -132,73 +131,73 @@
     // Masked. Return the mask register.
     return GetVectorMaskRegisterSourceOp<VectorRegister>(common->state(), 0);
   });
-  Insert(getter_map, *Enum::kVmaskTrue, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVmaskTrue, [common]() -> SourceOperandInterface* {
     return new RV32VectorTrueOperand(common->state());
   });
-  Insert(getter_map, *Enum::kVm, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVm, [common]() -> SourceOperandInterface* {
     auto vm = Extractors::VArith::ExtractVm(common->inst_word());
     return new generic::ImmediateOperand<bool>(
         vm, absl::StrCat("vm.", vm ? "t" : "f"));
   });
-  Insert(getter_map, *Enum::kVs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVs1, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VArith::ExtractVs1(common->inst_word());
     return GetVectorRegisterSourceOp<VectorRegister>(common->state(), num);
   });
-  Insert(getter_map, *Enum::kVs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVs2, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VArith::ExtractVs2(common->inst_word());
     return GetVectorRegisterSourceOp<VectorRegister>(common->state(), num);
   });
-  Insert(getter_map, *Enum::kVs3, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVs3, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VMem::ExtractVs3(common->inst_word());
     return GetVectorRegisterSourceOp<VectorRegister>(common->state(), num);
   });
 
-  Insert(getter_map, *Enum::kSimm5, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kSimm5, [common]() -> SourceOperandInterface* {
     const auto num =
         Extractors::Inst32Format::ExtractSimm5(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
 
-  Insert(getter_map, *Enum::kUimm5, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kUimm5, [common]() -> SourceOperandInterface* {
     const auto num =
         Extractors::Inst32Format::ExtractUimm5(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
 
-  Insert(getter_map, *Enum::kZimm10, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kZimm10, [common]() -> SourceOperandInterface* {
     const auto num =
         Extractors::Inst32Format::ExtractZimm10(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
 
-  Insert(getter_map, *Enum::kZimm11, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kZimm11, [common]() -> SourceOperandInterface* {
     const auto num =
         Extractors::Inst32Format::ExtractZimm11(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
 
-  Insert(getter_map, *Enum::kConst1, []() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kConst1, []() -> SourceOperandInterface* {
     return new generic::ImmediateOperand<int32_t>(1);
   });
 
-  Insert(getter_map, *Enum::kConst2, []() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kConst2, []() -> SourceOperandInterface* {
     return new generic::ImmediateOperand<int32_t>(2);
   });
 
-  Insert(getter_map, *Enum::kConst4, []() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kConst4, []() -> SourceOperandInterface* {
     return new generic::ImmediateOperand<int32_t>(4);
   });
 
-  Insert(getter_map, *Enum::kConst8, []() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kConst8, []() -> SourceOperandInterface* {
     return new generic::ImmediateOperand<int32_t>(8);
   });
 
-  Insert(getter_map, *Enum::kNf, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kNf, [common]() -> SourceOperandInterface* {
     auto num_fields = Extractors::VMem::ExtractNf(common->inst_word());
     return new generic::ImmediateOperand<uint8_t>(num_fields,
                                                   absl::StrCat(num_fields + 1));
   });
-  Insert(getter_map, *Enum::kFs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFs1, [common]() -> SourceOperandInterface* {
     const int num = Extractors::VArith::ExtractRs1(common->inst_word());
     return GetRegisterSourceOp<RV64Register>(common->state(),
                                              std::string(kFregNames[num]),
@@ -212,17 +211,17 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors, typename VectorRegister>
-void AddRiscVVectorDestGetters(DestOpGetterMap &getter_map,
-                               RiscVEncodingCommon *common) {
+void AddRiscVVectorDestGetters(DestOpGetterMap& getter_map,
+                               RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kVd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            auto num = Extractors::VArith::ExtractVd(common->inst_word());
            return GetVectorRegisterDestinationOp<VectorRegister>(
                common->state(), latency, num);
          });
   Insert(getter_map, *Enum::kFd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            const int num = Extractors::VArith::ExtractRd(common->inst_word());
            return GetRegisterDestinationOp<RV64Register>(
                common->state(), std::string(kFregNames[num]), latency,
@@ -236,8 +235,8 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors>
-void AddRiscVVectorSimpleResourceGetters(SimpleResourceGetterMap &getter_map,
-                                         RiscVEncodingCommon *common) {
+void AddRiscVVectorSimpleResourceGetters(SimpleResourceGetterMap& getter_map,
+                                         RiscVEncodingCommon* common) {
   // TODO(torerik): Add resource getters when appropriate.
 }
 
diff --git a/riscv/riscv_getters_zba.h b/riscv/riscv_getters_zba.h
index a7d06e3..f7b241d 100644
--- a/riscv/riscv_getters_zba.h
+++ b/riscv/riscv_getters_zba.h
@@ -15,8 +15,6 @@
 #ifndef THIRD_PARTY_MPACT_RISCV_RISCV_GETTERS_ZBA_H_
 #define THIRD_PARTY_MPACT_RISCV_RISCV_GETTERS_ZBA_H_
 
-#include <new>
-
 #include "mpact/sim/generic/literal_operand.h"
 #include "mpact/sim/generic/type_helpers.h"
 #include "riscv/riscv_encoding_common.h"
@@ -36,8 +34,8 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZbaSourceGetters(SourceOpGetterMap &getter_map,
-                              RiscVEncodingCommon *common) {
+void AddRiscVZbaSourceGetters(SourceOpGetterMap& getter_map,
+                              RiscVEncodingCommon* common) {
   // Source operand getters.
   Insert(getter_map, *Enum::kConst1,
          []() { return new generic::IntLiteralOperand<1>(); });
@@ -49,8 +47,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZbaDestGetters(DestOpGetterMap &getter_map,
-                            RiscVEncodingCommon *common) {
+void AddRiscVZbaDestGetters(DestOpGetterMap& getter_map,
+                            RiscVEncodingCommon* common) {
   // Destination operand getters.
   // Empty.
 }
diff --git a/riscv/riscv_getters_zbb32.h b/riscv/riscv_getters_zbb32.h
index f640a48..882dec6 100644
--- a/riscv/riscv_getters_zbb32.h
+++ b/riscv/riscv_getters_zbb32.h
@@ -16,7 +16,6 @@
 #define THIRD_PARTY_MPACT_RISCV_RISCV_GETTERS_ZBB32_H_
 
 #include <cstdint>
-#include <new>
 
 #include "mpact/sim/generic/immediate_operand.h"
 #include "mpact/sim/generic/type_helpers.h"
@@ -37,8 +36,8 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZbb32SourceGetters(SourceOpGetterMap &getter_map,
-                                RiscVEncodingCommon *common) {
+void AddRiscVZbb32SourceGetters(SourceOpGetterMap& getter_map,
+                                RiscVEncodingCommon* common) {
   // Source operand getters.
   Insert(getter_map, *Enum::kRUimm5, [common]() {
     uint32_t uimm = Extractors::RType::ExtractRUimm5(common->inst_word());
diff --git a/riscv/riscv_getters_zbb64.h b/riscv/riscv_getters_zbb64.h
index a824055..6d8aa1f 100644
--- a/riscv/riscv_getters_zbb64.h
+++ b/riscv/riscv_getters_zbb64.h
@@ -36,8 +36,8 @@
 // types for the instruction set.
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZbb64SourceGetters(SourceOpGetterMap &getter_map,
-                                RiscVEncodingCommon *common) {
+void AddRiscVZbb64SourceGetters(SourceOpGetterMap& getter_map,
+                                RiscVEncodingCommon* common) {
   // Source operand getters.
   Insert(getter_map, *Enum::kRUimm6, [common]() {
     uint32_t uimm = Extractors::RSType::ExtractRUimm6(common->inst_word());
diff --git a/riscv/riscv_getters_zvbb.h b/riscv/riscv_getters_zvbb.h
index 7484890..1b38953 100644
--- a/riscv/riscv_getters_zvbb.h
+++ b/riscv/riscv_getters_zvbb.h
@@ -16,7 +16,6 @@
 #define THIRD_PARTY_MPACT_RISCV_RISCV_GETTERS_ZVBB_H_
 
 #include <cstdint>
-#include <new>
 
 #include "absl/strings/str_cat.h"
 #include "mpact/sim/generic/immediate_operand.h"
@@ -39,10 +38,10 @@
 // for the instruction set being decoded. The Extractors parameter is used to
 // get the correct instruction format extractor for the instruction set.
 template <typename Enum, typename Extractors, typename VectorRegister>
-void AddRiscVZvbbSourceVectorGetters(SourceOpGetterMap &getter_map,
-                                     RiscVEncodingCommon *common) {
+void AddRiscVZvbbSourceVectorGetters(SourceOpGetterMap& getter_map,
+                                     RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kVmask, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVmask, [common]() -> SourceOperandInterface* {
     auto vm = Extractors::VArith::ExtractVm(common->inst_word());
     if (vm == 1) {
       // Unmasked, return the True mask.
@@ -52,12 +51,12 @@
     return mpact::sim::riscv::GetVectorMaskRegisterSourceOp<VectorRegister>(
         common->state(), 0);
   });
-  Insert(getter_map, *Enum::kVs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVs1, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VArith::ExtractVs1(common->inst_word());
     return mpact::sim::riscv::GetVectorMaskRegisterSourceOp<VectorRegister>(
         common->state(), num);
   });
-  Insert(getter_map, *Enum::kVs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kVs2, [common]() -> SourceOperandInterface* {
     auto num = Extractors::VArith::ExtractVs2(common->inst_word());
     return mpact::sim::riscv::GetVectorMaskRegisterSourceOp<VectorRegister>(
         common->state(), num);
@@ -65,32 +64,32 @@
 }
 
 template <typename Enum, typename Extractors, typename IntegerRegister>
-void AddRiscvZvbbSourceScalarGetters(SourceOpGetterMap &getter_map,
-                                     RiscVEncodingCommon *common) {
+void AddRiscvZvbbSourceScalarGetters(SourceOpGetterMap& getter_map,
+                                     RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::VArith::ExtractRs1(common->inst_word());
     if (num == 0) return new generic::IntLiteralOperand<0>({1});
     return GetRegisterSourceOp<IntegerRegister>(
         common->state(), absl::StrCat(RiscVState::kXregPrefix, num),
         kXRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kUimm5, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kUimm5, [common]() -> SourceOperandInterface* {
     const auto num = Extractors::VArith::ExtractUimm5(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
-  Insert(getter_map, *Enum::kUimm6, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kUimm6, [common]() -> SourceOperandInterface* {
     const auto num = Extractors::VArith::ExtractUimm6(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
 }
 
 template <typename Enum, typename Extractors, typename VectorRegister>
-void AddRiscVZvbbDestGetters(DestOpGetterMap &getter_map,
-                             RiscVEncodingCommon *common) {
+void AddRiscVZvbbDestGetters(DestOpGetterMap& getter_map,
+                             RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kVd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            auto num = Extractors::VArith::ExtractVd(common->inst_word());
            return mpact::sim::riscv::GetVectorRegisterDestinationOp<
                VectorRegister>(common->state(), latency, num);
diff --git a/riscv/riscv_i_instructions.cc b/riscv/riscv_i_instructions.cc
index 2376214..64645ec 100644
--- a/riscv/riscv_i_instructions.cc
+++ b/riscv/riscv_i_instructions.cc
@@ -32,8 +32,8 @@
 namespace sim {
 namespace riscv {
 
-void RiscVIllegalInstruction(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RiscVIllegalInstruction(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
               *ExceptionCode::kIllegalInstruction,
               /*epc*/ inst->address(), inst);
@@ -53,59 +53,59 @@
     typename std::make_unsigned<typename RegisterType::ValueType>::type;
 using IntReg = typename std::make_signed<UIntReg>::type;
 
-void RiscVIAdd(const Instruction *instruction) {
+void RiscVIAdd(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a + b; });
 }
 
-void RiscVISub(const Instruction *instruction) {
+void RiscVISub(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a - b; });
 }
 
-void RiscVISlt(const Instruction *instruction) {
+void RiscVISlt(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a < b; });
 }
 
-void RiscVISltu(const Instruction *instruction) {
+void RiscVISltu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a < b; });
 }
 
-void RiscVIAnd(const Instruction *instruction) {
+void RiscVIAnd(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a & b; });
 }
 
-void RiscVIOr(const Instruction *instruction) {
+void RiscVIOr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a | b; });
 }
 
-void RiscVIXor(const Instruction *instruction) {
+void RiscVIXor(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a ^ b; });
 }
 
-void RiscVISll(const Instruction *instruction) {
+void RiscVISll(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a << (b & 0x1f); });
 }
 
-void RiscVISrl(const Instruction *instruction) {
+void RiscVISrl(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a >> (b & 0x1f); });
 }
 
-void RiscVISra(const Instruction *instruction) {
+void RiscVISra(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a >> (b & 0x1f); });
 }
 
 // Load upper immediate. It is assumed that the decoder already shifted the
 // immediate. Operates on 32 bit quantities, not XLEN bits.
-void RiscVILui(const Instruction *instruction) {
+void RiscVILui(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, uint32_t, uint32_t>(
       instruction, [](uint32_t lhs) { return lhs & ~0xfff; });
 }
@@ -113,7 +113,7 @@
 // Add upper immediate to PC (for PC relative addressing). It is assumed that
 // the decoder already shifted the immediate. Operates on 32 bit quantities,
 // not XLEN bits.
-void RiscVIAuipc(const Instruction *instruction) {
+void RiscVIAuipc(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, uint32_t, uint32_t>(
       instruction, [instruction](uint32_t lhs) {
         return (lhs & ~0xfff) + instruction->address();
@@ -122,30 +122,30 @@
 
 // Jump and link instructions. One using a long offset, the other offset plus
 // base.
-void RiscVIJal(const Instruction *instruction) {
+void RiscVIJal(const Instruction* instruction) {
   UIntReg offset = generic::GetInstructionSource<UIntReg>(instruction, 0);
   UIntReg target = (offset + instruction->address()) & ~0x1;
   UIntReg return_address = instruction->address() + instruction->size();
-  auto *db = instruction->Destination(0)->AllocateDataBuffer();
+  auto* db = instruction->Destination(0)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->set_branch(true);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<UIntReg> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<UIntReg>*>(
                   instruction->Destination(1))
                   ->GetRegister();
   reg->data_buffer()->Set<UIntReg>(0, return_address);
 }
 
-void RiscVIJalr(const Instruction *instruction) {
+void RiscVIJalr(const Instruction* instruction) {
   UIntReg reg_base = generic::GetInstructionSource<UIntReg>(instruction, 0);
   UIntReg offset = generic::GetInstructionSource<UIntReg>(instruction, 1);
   UIntReg target = (offset + reg_base) & ~0x1;
   UIntReg return_address = instruction->address() + instruction->size();
-  auto *db = instruction->Destination(0)->AllocateDataBuffer();
+  auto* db = instruction->Destination(0)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->set_branch(true);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<UIntReg> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<UIntReg>*>(
                   instruction->Destination(1))
                   ->GetRegister();
   reg->data_buffer()->Set<UIntReg>(0, return_address);
@@ -164,12 +164,12 @@
 using NarrowIntReg = typename ::mpact::sim::generic::NarrowType<IntReg>::type;
 using NarrowUIntReg = typename ::mpact::sim::generic::NarrowType<UIntReg>::type;
 
-void RiscVIAdd(const Instruction *instruction) {
+void RiscVIAdd(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a + b; });
 }
 
-void RiscVIAddw(const Instruction *instruction) {
+void RiscVIAddw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) {
         IntReg c = static_cast<IntReg>(a + b);
@@ -177,12 +177,12 @@
       });
 }
 
-void RiscVISub(const Instruction *instruction) {
+void RiscVISub(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a - b; });
 }
 
-void RiscVISubw(const Instruction *instruction) {
+void RiscVISubw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) {
         IntReg c = static_cast<IntReg>(a - b);
@@ -190,54 +190,54 @@
       });
 }
 
-void RiscVISlt(const Instruction *instruction) {
+void RiscVISlt(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a < b; });
 }
 
-void RiscVISltu(const Instruction *instruction) {
+void RiscVISltu(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a < b; });
 }
 
-void RiscVIAnd(const Instruction *instruction) {
+void RiscVIAnd(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a & b; });
 }
 
-void RiscVIOr(const Instruction *instruction) {
+void RiscVIOr(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a | b; });
 }
 
-void RiscVIXor(const Instruction *instruction) {
+void RiscVIXor(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a ^ b; });
 }
 
-void RiscVISll(const Instruction *instruction) {
+void RiscVISll(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a << (b & 0x3f); });
 }
 
-void RiscVISrl(const Instruction *instruction) {
+void RiscVISrl(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, UIntReg, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a >> (b & 0x3f); });
 }
 
-void RiscVISra(const Instruction *instruction) {
+void RiscVISra(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a >> (b & 0x3f); });
 }
 
-void RiscVISllw(const Instruction *instruction) {
+void RiscVISllw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) -> IntReg {
         return static_cast<IntReg>(a << (b & 0x1f));
       });
 }
 
-void RiscVISrlw(const Instruction *instruction) {
+void RiscVISrlw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, NarrowUIntReg>(
       instruction, [](NarrowUIntReg a, NarrowUIntReg b) -> IntReg {
         auto c = a >> (b & 0x1f);
@@ -245,7 +245,7 @@
       });
 }
 
-void RiscVISraw(const Instruction *instruction) {
+void RiscVISraw(const Instruction* instruction) {
   RiscVBinaryOp<RegisterType, IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) -> IntReg {
         return static_cast<IntReg>(a >> (b & 0x1f));
@@ -254,7 +254,7 @@
 
 // Load upper immediate. It is assumed that the decoder already shifted the
 // immediate.
-void RiscVILui(const Instruction *instruction) {
+void RiscVILui(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, IntReg, int32_t>(
       instruction, [](int32_t lhs) -> IntReg {
         auto lhs_w = static_cast<IntReg>(lhs);
@@ -264,7 +264,7 @@
 
 // Add upper immediate to PC (for PC relative addressing). It is assumed that
 // the decoder already shifted the immediate.
-void RiscVIAuipc(const Instruction *instruction) {
+void RiscVIAuipc(const Instruction* instruction) {
   RiscVUnaryOp<RegisterType, uint64_t, int32_t>(
       instruction, [instruction](int32_t lhs) {
         auto lhs_w = static_cast<IntReg>(lhs & ~0xfff);
@@ -274,32 +274,32 @@
 
 // Jump and link instructions. One using a long offset, the other offset plus
 // base.
-void RiscVIJal(const Instruction *instruction) {
+void RiscVIJal(const Instruction* instruction) {
   UIntReg offset = generic::GetInstructionSource<UIntReg>(instruction, 0);
   UIntReg target = offset + instruction->address();
   target &= (std::numeric_limits<UIntReg>::max() << 1);
   UIntReg return_address = instruction->address() + instruction->size();
-  auto *db = instruction->Destination(0)->AllocateDataBuffer();
+  auto* db = instruction->Destination(0)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->set_branch(true);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<UIntReg> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<UIntReg>*>(
                   instruction->Destination(1))
                   ->GetRegister();
   reg->data_buffer()->Set<UIntReg>(0, return_address);
 }
 
-void RiscVIJalr(const Instruction *instruction) {
+void RiscVIJalr(const Instruction* instruction) {
   UIntReg reg_base = generic::GetInstructionSource<UIntReg>(instruction, 0);
   UIntReg offset = generic::GetInstructionSource<UIntReg>(instruction, 1);
   UIntReg target = offset + reg_base;
   target &= (std::numeric_limits<UIntReg>::max() << 1);
   UIntReg return_address = instruction->address() + instruction->size();
-  auto *db = instruction->Destination(0)->AllocateDataBuffer();
+  auto* db = instruction->Destination(0)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->set_branch(true);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<UIntReg> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<UIntReg>*>(
                   instruction->Destination(1))
                   ->GetRegister();
   reg->data_buffer()->Set<UIntReg>(0, return_address);
@@ -307,7 +307,7 @@
 
 }  // namespace RV64
 
-void RiscVINop(const Instruction *instruction) {}
+void RiscVINop(const Instruction* instruction) {}
 
 namespace RV32 {
 
@@ -318,32 +318,32 @@
     typename std::make_unsigned<typename RegisterType::ValueType>::type;
 using IntReg = typename std::make_signed<UIntReg>::type;
 
-void RiscVIBeq(const Instruction *instruction) {
+void RiscVIBeq(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a == b; });
 }
 
-void RiscVIBne(const Instruction *instruction) {
+void RiscVIBne(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a != b; });
 }
 
-void RiscVIBlt(const Instruction *instruction) {
+void RiscVIBlt(const Instruction* instruction) {
   BranchConditional<RegisterType, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a < b; });
 }
 
-void RiscVIBltu(const Instruction *instruction) {
+void RiscVIBltu(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a < b; });
 }
 
-void RiscVIBge(const Instruction *instruction) {
+void RiscVIBge(const Instruction* instruction) {
   BranchConditional<RegisterType, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a >= b; });
 }
 
-void RiscVIBgeu(const Instruction *instruction) {
+void RiscVIBgeu(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a >= b; });
 }
@@ -359,32 +359,32 @@
     typename std::make_unsigned<typename RegisterType::ValueType>::type;
 using IntReg = typename std::make_signed<UIntReg>::type;
 
-void RiscVIBeq(const Instruction *instruction) {
+void RiscVIBeq(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a == b; });
 }
 
-void RiscVIBne(const Instruction *instruction) {
+void RiscVIBne(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a != b; });
 }
 
-void RiscVIBlt(const Instruction *instruction) {
+void RiscVIBlt(const Instruction* instruction) {
   BranchConditional<RegisterType, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a < b; });
 }
 
-void RiscVIBltu(const Instruction *instruction) {
+void RiscVIBltu(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a < b; });
 }
 
-void RiscVIBge(const Instruction *instruction) {
+void RiscVIBge(const Instruction* instruction) {
   BranchConditional<RegisterType, IntReg>(
       instruction, [](IntReg a, IntReg b) { return a >= b; });
 }
 
-void RiscVIBgeu(const Instruction *instruction) {
+void RiscVIBgeu(const Instruction* instruction) {
   BranchConditional<RegisterType, UIntReg>(
       instruction, [](UIntReg a, UIntReg b) { return a >= b; });
 }
@@ -395,47 +395,47 @@
 
 using RegisterType = RV32Register;
 
-void RiscVILd(const Instruction *instruction) {
+void RiscVILd(const Instruction* instruction) {
   RVLoad<RegisterType, uint64_t>(instruction);
 }
 
-void RiscVILw(const Instruction *instruction) {
+void RiscVILw(const Instruction* instruction) {
   RVLoad<RegisterType, int32_t>(instruction);
 }
 
-void RiscVILwChild(const Instruction *instruction) {
+void RiscVILwChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int32_t>(instruction);
 }
 
-void RiscVILh(const Instruction *instruction) {
+void RiscVILh(const Instruction* instruction) {
   RVLoad<RegisterType, int16_t>(instruction);
 }
 
-void RiscVILhChild(const Instruction *instruction) {
+void RiscVILhChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int16_t>(instruction);
 }
 
-void RiscVILhu(const Instruction *instruction) {
+void RiscVILhu(const Instruction* instruction) {
   RVLoad<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVILhuChild(const Instruction *instruction) {
+void RiscVILhuChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVILb(const Instruction *instruction) {
+void RiscVILb(const Instruction* instruction) {
   RVLoad<RegisterType, int8_t>(instruction);
 }
 
-void RiscVILbChild(const Instruction *instruction) {
+void RiscVILbChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int8_t>(instruction);
 }
 
-void RiscVILbu(const Instruction *instruction) {
+void RiscVILbu(const Instruction* instruction) {
   RVLoad<RegisterType, uint8_t>(instruction);
 }
 
-void RiscVILbuChild(const Instruction *instruction) {
+void RiscVILbuChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, uint8_t>(instruction);
 }
 
@@ -445,59 +445,59 @@
 
 using RegisterType = RV64Register;
 
-void RiscVILd(const Instruction *instruction) {
+void RiscVILd(const Instruction* instruction) {
   RVLoad<RegisterType, uint64_t>(instruction);
 }
 
-void RiscVILdChild(const Instruction *instruction) {
+void RiscVILdChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int64_t>(instruction);
 }
 
-void RiscVILw(const Instruction *instruction) {
+void RiscVILw(const Instruction* instruction) {
   RVLoad<RegisterType, int32_t>(instruction);
 }
 
-void RiscVILwChild(const Instruction *instruction) {
+void RiscVILwChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int32_t>(instruction);
 }
 
-void RiscVILwu(const Instruction *instruction) {
+void RiscVILwu(const Instruction* instruction) {
   RVLoad<RegisterType, uint32_t>(instruction);
 }
 
-void RiscVILwuChild(const Instruction *instruction) {
+void RiscVILwuChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, uint32_t>(instruction);
 }
 
-void RiscVILh(const Instruction *instruction) {
+void RiscVILh(const Instruction* instruction) {
   RVLoad<RegisterType, int16_t>(instruction);
 }
 
-void RiscVILhChild(const Instruction *instruction) {
+void RiscVILhChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int16_t>(instruction);
 }
 
-void RiscVILhu(const Instruction *instruction) {
+void RiscVILhu(const Instruction* instruction) {
   RVLoad<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVILhuChild(const Instruction *instruction) {
+void RiscVILhuChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVILb(const Instruction *instruction) {
+void RiscVILb(const Instruction* instruction) {
   RVLoad<RegisterType, int8_t>(instruction);
 }
 
-void RiscVILbChild(const Instruction *instruction) {
+void RiscVILbChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, int8_t>(instruction);
 }
 
-void RiscVILbu(const Instruction *instruction) {
+void RiscVILbu(const Instruction* instruction) {
   RVLoad<RegisterType, uint8_t>(instruction);
 }
 
-void RiscVILbuChild(const Instruction *instruction) {
+void RiscVILbuChild(const Instruction* instruction) {
   RVLoadChild<RegisterType, uint8_t>(instruction);
 }
 
@@ -507,19 +507,19 @@
 
 using RegisterType = RV32Register;
 
-void RiscVISd(const Instruction *instruction) {
+void RiscVISd(const Instruction* instruction) {
   RVStore<RegisterType, uint64_t>(instruction);
 }
 
-void RiscVISw(const Instruction *instruction) {
+void RiscVISw(const Instruction* instruction) {
   RVStore<RegisterType, uint32_t>(instruction);
 }
 
-void RiscVISh(const Instruction *instruction) {
+void RiscVISh(const Instruction* instruction) {
   RVStore<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVISb(const Instruction *instruction) {
+void RiscVISb(const Instruction* instruction) {
   RVStore<RegisterType, uint8_t>(instruction);
 }
 
@@ -529,26 +529,26 @@
 
 using RegisterType = RV64Register;
 
-void RiscVISd(const Instruction *instruction) {
+void RiscVISd(const Instruction* instruction) {
   RVStore<RegisterType, uint64_t>(instruction);
 }
 
-void RiscVISw(const Instruction *instruction) {
+void RiscVISw(const Instruction* instruction) {
   RVStore<RegisterType, uint32_t>(instruction);
 }
 
-void RiscVISh(const Instruction *instruction) {
+void RiscVISh(const Instruction* instruction) {
   RVStore<RegisterType, uint16_t>(instruction);
 }
 
-void RiscVISb(const Instruction *instruction) {
+void RiscVISb(const Instruction* instruction) {
   RVStore<RegisterType, uint8_t>(instruction);
 }
 
 }  // namespace RV64
 
-void RiscVIUnimplemented(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVIUnimplemented(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   // Get instruction word, as it needs to be used as trap value.
   uint64_t address = instruction->address();
   auto db = state->db_factory()->Allocate<uint32_t>(1);
@@ -562,32 +562,32 @@
               /*epc=*/instruction->address(), instruction);
 }
 
-void RiscVIFence(const Instruction *instruction) {
+void RiscVIFence(const Instruction* instruction) {
   int pred = generic::GetInstructionSource<uint32_t>(instruction, 0) & 0xf;
   int succ = generic::GetInstructionSource<uint32_t>(instruction, 1) & 0xf;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   // Fence mode is 0x0
   state->Fence(instruction, /*fence_mode=*/0x0, pred, succ);
 }
 
-void RiscVIFenceTso(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVIFenceTso(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->Fence(instruction, /*fence_mode=*/0b1000, /*pred=*/0b0011,
                /*succ=*/0b0011);
 }
 
-void RiscVIEcall(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVIEcall(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->ECall(instruction);
 }
 
-void RiscVIEbreak(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVIEbreak(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->EBreak(instruction);
 }
 
-void RiscVWFI(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVWFI(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->WFI(instruction);
 }
 
diff --git a/riscv/riscv_i_instructions.h b/riscv/riscv_i_instructions.h
index f0770cb..f04b214 100644
--- a/riscv/riscv_i_instructions.h
+++ b/riscv/riscv_i_instructions.h
@@ -31,51 +31,51 @@
 
 using ::mpact::sim::generic::Instruction;
 
-void RiscVIllegalInstruction(const Instruction *inst);
+void RiscVIllegalInstruction(const Instruction* inst);
 
 // No operands necessary for Nop. For now, all hint instructions should be
 // decoded as Nop.
-void RiscVINop(const Instruction *instruction);
+void RiscVINop(const Instruction* instruction);
 
 namespace RV32 {
 
 // For the following, source operand 0 refers to the register specified in rs1,
 // and source operand 1 refers to either the register specified in rs2, or the
 // immediate. Destination operand 0 refers to the register specified in rd.
-void RiscVIAdd(const Instruction *instruction);
-void RiscVISub(const Instruction *instruction);
-void RiscVISlt(const Instruction *instruction);
-void RiscVISltu(const Instruction *instruction);
-void RiscVIAnd(const Instruction *instruction);
-void RiscVIOr(const Instruction *instruction);
-void RiscVIXor(const Instruction *instruction);
-void RiscVISll(const Instruction *instruction);
-void RiscVISrl(const Instruction *instruction);
-void RiscVISra(const Instruction *instruction);
+void RiscVIAdd(const Instruction* instruction);
+void RiscVISub(const Instruction* instruction);
+void RiscVISlt(const Instruction* instruction);
+void RiscVISltu(const Instruction* instruction);
+void RiscVIAnd(const Instruction* instruction);
+void RiscVIOr(const Instruction* instruction);
+void RiscVIXor(const Instruction* instruction);
+void RiscVISll(const Instruction* instruction);
+void RiscVISrl(const Instruction* instruction);
+void RiscVISra(const Instruction* instruction);
 // For the following two semantic functions, source operand 0 refers to the
 // immediate value, and destination 0 the register specified in rd. Note, the
 // value of the immediate shall be properly shifted.
-void RiscVILui(const Instruction *instruction);
-void RiscVIAuipc(const Instruction *instruction);
+void RiscVILui(const Instruction* instruction);
+void RiscVIAuipc(const Instruction* instruction);
 // Source operand 0 contains the immediate value. Destination operand 0 refers
 // to the pc destination operand, wheras destination operand 1 refers to the
 // link register specified in rd.
-void RiscVIJal(const Instruction *instruction);
+void RiscVIJal(const Instruction* instruction);
 // Source operand 0 refers to the base registers specified by rs1, source
 // operand 1 contains the immediate value. Destination operand 0 refers to the
 // pc destination operand, wheras destination operand 1 refers to the
 // link register specified in rd.
-void RiscVIJalr(const Instruction *instruction);
+void RiscVIJalr(const Instruction* instruction);
 // For the following branch instructions. Source operand 0 refers to the
 // register specified by rs1, source operand 2 refers to the register specified
 // by rs2, and source operand 3 refers to the immediate offset. Destination
 // operand 0 refers to the pc destination operand.
-void RiscVIBeq(const Instruction *instruction);
-void RiscVIBne(const Instruction *instruction);
-void RiscVIBlt(const Instruction *instruction);
-void RiscVIBltu(const Instruction *instruction);
-void RiscVIBge(const Instruction *instruction);
-void RiscVIBgeu(const Instruction *instruction);
+void RiscVIBeq(const Instruction* instruction);
+void RiscVIBne(const Instruction* instruction);
+void RiscVIBlt(const Instruction* instruction);
+void RiscVIBltu(const Instruction* instruction);
+void RiscVIBge(const Instruction* instruction);
+void RiscVIBgeu(const Instruction* instruction);
 // Each of the load instructions are modeled by a pair of semantic instruction
 // functions. The "main" function computes the effective address and initiates
 // the load, the "child" function processes the load result and writes it back
@@ -84,24 +84,24 @@
 // source operand 1 the offset. Destination operand 0 is the register specified
 // by rd. The "child" semantic function will get a copy of the destination
 // operand.
-void RiscVILd(const Instruction *instruction);
-void RiscVILw(const Instruction *instruction);
-void RiscVILwChild(const Instruction *instruction);
-void RiscVILh(const Instruction *instruction);
-void RiscVILhChild(const Instruction *instruction);
-void RiscVILhu(const Instruction *instruction);
-void RiscVILhuChild(const Instruction *instruction);
-void RiscVILb(const Instruction *instruction);
-void RiscVILbChild(const Instruction *instruction);
-void RiscVILbu(const Instruction *instruction);
-void RiscVILbuChild(const Instruction *instruction);
+void RiscVILd(const Instruction* instruction);
+void RiscVILw(const Instruction* instruction);
+void RiscVILwChild(const Instruction* instruction);
+void RiscVILh(const Instruction* instruction);
+void RiscVILhChild(const Instruction* instruction);
+void RiscVILhu(const Instruction* instruction);
+void RiscVILhuChild(const Instruction* instruction);
+void RiscVILb(const Instruction* instruction);
+void RiscVILbChild(const Instruction* instruction);
+void RiscVILbu(const Instruction* instruction);
+void RiscVILbuChild(const Instruction* instruction);
 // For each store instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVISd(const Instruction *instruction);
-void RiscVISw(const Instruction *instruction);
-void RiscVISh(const Instruction *instruction);
-void RiscVISb(const Instruction *instruction);
+void RiscVISd(const Instruction* instruction);
+void RiscVISw(const Instruction* instruction);
+void RiscVISh(const Instruction* instruction);
+void RiscVISb(const Instruction* instruction);
 
 }  // namespace RV32
 
@@ -110,48 +110,48 @@
 // For the following, source operand 0 refers to the register specified in rs1,
 // and source operand 1 refers to either the register specified in rs2, or the
 // immediate. Destination operand 0 refers to the register specified in rd.
-void RiscVIAdd(const Instruction *instruction);
-void RiscVIAddw(const Instruction *instruction);
-void RiscVISub(const Instruction *instruction);
-void RiscVISubw(const Instruction *instruction);
-void RiscVISlt(const Instruction *instruction);
-void RiscVISltu(const Instruction *instruction);
-void RiscVIAnd(const Instruction *instruction);
-void RiscVIOr(const Instruction *instruction);
-void RiscVIXor(const Instruction *instruction);
-void RiscVISll(const Instruction *instruction);
-void RiscVISrl(const Instruction *instruction);
-void RiscVISra(const Instruction *instruction);
-void RiscVISllw(const Instruction *instruction);
-void RiscVISrlw(const Instruction *instruction);
-void RiscVISraw(const Instruction *instruction);
+void RiscVIAdd(const Instruction* instruction);
+void RiscVIAddw(const Instruction* instruction);
+void RiscVISub(const Instruction* instruction);
+void RiscVISubw(const Instruction* instruction);
+void RiscVISlt(const Instruction* instruction);
+void RiscVISltu(const Instruction* instruction);
+void RiscVIAnd(const Instruction* instruction);
+void RiscVIOr(const Instruction* instruction);
+void RiscVIXor(const Instruction* instruction);
+void RiscVISll(const Instruction* instruction);
+void RiscVISrl(const Instruction* instruction);
+void RiscVISra(const Instruction* instruction);
+void RiscVISllw(const Instruction* instruction);
+void RiscVISrlw(const Instruction* instruction);
+void RiscVISraw(const Instruction* instruction);
 // For the following two semantic functions, source operand 0 refers to the
 // immediate value, and destination 0 the register specified in rd. Note, the
 // value of the immediate shall be properly shifted.
-void RiscVILui(const Instruction *instruction);
-void RiscVIAuipc(const Instruction *instruction);
+void RiscVILui(const Instruction* instruction);
+void RiscVIAuipc(const Instruction* instruction);
 // No operands necessary for Nop. For now, all hint instructions should be
 // decoded as Nop.
-void RiscVINop(const Instruction *instruction);
+void RiscVINop(const Instruction* instruction);
 // Source operand 0 contains the immediate value. Destination operand 0 refers
 // to the pc destination operand, wheras destination operand 1 refers to the
 // link register specified in rd.
-void RiscVIJal(const Instruction *instruction);
+void RiscVIJal(const Instruction* instruction);
 // Source operand 0 refers to the base registers specified by rs1, source
 // operand 1 contains the immediate value. Destination operand 0 refers to the
 // pc destination operand, wheras destination operand 1 refers to the
 // link register specified in rd.
-void RiscVIJalr(const Instruction *instruction);
+void RiscVIJalr(const Instruction* instruction);
 // For the following branch instructions. Source operand 0 refers to the
 // register specified by rs1, source operand 2 refers to the register specified
 // by rs2, and source operand 3 refers to the immediate offset. Destination
 // operand 0 refers to the pc destination operand.
-void RiscVIBeq(const Instruction *instruction);
-void RiscVIBne(const Instruction *instruction);
-void RiscVIBlt(const Instruction *instruction);
-void RiscVIBltu(const Instruction *instruction);
-void RiscVIBge(const Instruction *instruction);
-void RiscVIBgeu(const Instruction *instruction);
+void RiscVIBeq(const Instruction* instruction);
+void RiscVIBne(const Instruction* instruction);
+void RiscVIBlt(const Instruction* instruction);
+void RiscVIBltu(const Instruction* instruction);
+void RiscVIBge(const Instruction* instruction);
+void RiscVIBgeu(const Instruction* instruction);
 // Each of the load instructions are modeled by a pair of semantic instruction
 // functions. The "main" function computes the effective address and initiates
 // the load, the "child" function processes the load result and writes it back
@@ -160,27 +160,27 @@
 // source operand 1 the offset. Destination operand 0 is the register specified
 // by rd. The "child" semantic function will get a copy of the destination
 // operand.
-void RiscVILd(const Instruction *instruction);
-void RiscVILdChild(const Instruction *instruction);
-void RiscVILw(const Instruction *instruction);
-void RiscVILwChild(const Instruction *instruction);
-void RiscVILwu(const Instruction *instruction);
-void RiscVILwuChild(const Instruction *instruction);
-void RiscVILh(const Instruction *instruction);
-void RiscVILhChild(const Instruction *instruction);
-void RiscVILhu(const Instruction *instruction);
-void RiscVILhuChild(const Instruction *instruction);
-void RiscVILb(const Instruction *instruction);
-void RiscVILbChild(const Instruction *instruction);
-void RiscVILbu(const Instruction *instruction);
-void RiscVILbuChild(const Instruction *instruction);
+void RiscVILd(const Instruction* instruction);
+void RiscVILdChild(const Instruction* instruction);
+void RiscVILw(const Instruction* instruction);
+void RiscVILwChild(const Instruction* instruction);
+void RiscVILwu(const Instruction* instruction);
+void RiscVILwuChild(const Instruction* instruction);
+void RiscVILh(const Instruction* instruction);
+void RiscVILhChild(const Instruction* instruction);
+void RiscVILhu(const Instruction* instruction);
+void RiscVILhuChild(const Instruction* instruction);
+void RiscVILb(const Instruction* instruction);
+void RiscVILbChild(const Instruction* instruction);
+void RiscVILbu(const Instruction* instruction);
+void RiscVILbuChild(const Instruction* instruction);
 // For each store instruction semantic function, source operand 0 is the base
 // register, source operand 1 is the offset, while source operand 2 is the value
 // to be stored referred to by rs2.
-void RiscVISd(const Instruction *instruction);
-void RiscVISw(const Instruction *instruction);
-void RiscVISh(const Instruction *instruction);
-void RiscVISb(const Instruction *instruction);
+void RiscVISd(const Instruction* instruction);
+void RiscVISw(const Instruction* instruction);
+void RiscVISh(const Instruction* instruction);
+void RiscVISb(const Instruction* instruction);
 
 }  // namespace RV64
 
@@ -188,19 +188,19 @@
 // c.unimp instructions are issued. The instruction takes an unknown instruction
 // exception, but does not print a log message.
 // The instruction does not take any operands.
-void RiscVIUnimplemented(const Instruction *instruction);
+void RiscVIUnimplemented(const Instruction* instruction);
 
 // The Fence instruction takes two source operands, the 4 bit values of the
 // predecessor and successor sets.
-void RiscVIFence(const Instruction *instruction);
+void RiscVIFence(const Instruction* instruction);
 // The Fence.tso takes no operands.
-void RiscVIFenceTso(const Instruction *instruction);
+void RiscVIFenceTso(const Instruction* instruction);
 // Ecall and EBreak take no source or destination operands.
-void RiscVIEcall(const Instruction *instruction);
-void RiscVIEbreak(const Instruction *instruction);
+void RiscVIEcall(const Instruction* instruction);
+void RiscVIEbreak(const Instruction* instruction);
 // Trap doesn't implement any specific instruction, but can be called as an
 // instruction, for instance for unknown instructions.
-void RiscVITrap(bool is_interrupt, uint32_t cause, Instruction *instruction);
+void RiscVITrap(bool is_interrupt, uint32_t cause, Instruction* instruction);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_instruction_helpers.h b/riscv/riscv_instruction_helpers.h
index 8999576..89d6050 100644
--- a/riscv/riscv_instruction_helpers.h
+++ b/riscv/riscv_instruction_helpers.h
@@ -73,20 +73,20 @@
 // Generic helper function for floating op instructions that do not require
 // NaN boxing since they produce non fp-values, but set fflags.
 template <typename Result, typename From, typename To>
-inline void RiscVConvertFloatWithFflagsOp(const Instruction *instruction) {
+inline void RiscVConvertFloatWithFflagsOp(const Instruction* instruction) {
   constexpr To kMax = std::numeric_limits<To>::max();
   constexpr To kMin = std::numeric_limits<To>::min();
 
   From lhs = generic::GetInstructionSource<From>(instruction, 0);
   using FromUint = typename FPTypeInfo<From>::UIntType;
-  FromUint lhs_u = *reinterpret_cast<FromUint *>(&lhs);
+  FromUint lhs_u = *reinterpret_cast<FromUint*>(&lhs);
   auto constexpr kExpMask = FPTypeInfo<From>::kExpMask;
   auto constexpr kSigMask = FPTypeInfo<From>::kSigMask;
   uint32_t flags = 0;
   uint32_t rm = generic::GetInstructionSource<uint32_t>(instruction, 1);
   // Dynamic rounding mode will get rounding mode from the global state.
   if (rm == *FPRoundingMode::kDynamic) {
-    auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+    auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
     if (!rv_fp->rounding_mode_valid()) {
       LOG(ERROR) << "Invalid rounding mode";
       return;
@@ -111,7 +111,7 @@
     auto constexpr kSigSize = FPTypeInfo<From>::kSigSize;
     auto constexpr kSigMask = FPTypeInfo<From>::kSigMask;
     auto constexpr kBitSize = FPTypeInfo<From>::kBitSize;
-    FromUint lhs_u = *reinterpret_cast<FromUint *>(&lhs);
+    FromUint lhs_u = *reinterpret_cast<FromUint*>(&lhs);
     const bool sign = (lhs_u & (1ULL << (kBitSize - 1))) != 0;
     FromUint exp = kExpMask & lhs_u;
     int exp_value = exp >> kSigSize;
@@ -264,17 +264,17 @@
     }
   }
   using SignedTo = typename std::make_signed<To>::type;
-  auto *dest = instruction->Destination(0);
-  auto *reg_dest =
-      static_cast<generic::RegisterDestinationOperand<Result> *>(dest);
-  auto *reg = reg_dest->GetRegister();
+  auto* dest = instruction->Destination(0);
+  auto* reg_dest =
+      static_cast<generic::RegisterDestinationOperand<Result>*>(dest);
+  auto* reg = reg_dest->GetRegister();
   // The final value is sign-extended to the register width, even if it's
   // conversion to an unsigned value.
   SignedTo signed_value = static_cast<SignedTo>(value);
   Result dest_value = static_cast<Result>(signed_value);
   reg->data_buffer()->template Set<Result>(0, dest_value);
   if (flags) {
-    auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+    auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
     flag_db->Set<uint32_t>(0, flags);
     flag_db->Submit();
   }
@@ -283,7 +283,7 @@
 // Helper function to read a NaN boxed source value, converting it to NaN if
 // it isn't formatted properly.
 template <typename RegValue, typename Argument>
-inline Argument GetNaNBoxedSource(const Instruction *instruction, int arg) {
+inline Argument GetNaNBoxedSource(const Instruction* instruction, int arg) {
   if (sizeof(RegValue) <= sizeof(Argument)) {
     return generic::GetInstructionSource<Argument>(instruction, arg);
   } else {
@@ -291,7 +291,7 @@
     UInt uval = generic::GetInstructionSource<UInt>(instruction, arg);
     UInt mask = std::numeric_limits<UInt>::max() << (sizeof(Argument) * 8);
     if (((mask & uval) != mask)) {
-      return *reinterpret_cast<const Argument *>(
+      return *reinterpret_cast<const Argument*>(
           &FPTypeInfo<Argument>::kCanonicalNaN);
     }
     return generic::GetInstructionSource<Argument>(instruction, arg);
@@ -300,13 +300,13 @@
 
 // Generic helper function for binary instructions.
 template <typename Register, typename Result, typename Argument>
-inline void RiscVBinaryOp(const Instruction *instruction,
+inline void RiscVBinaryOp(const Instruction* instruction,
                           std::function<Result(Argument, Argument)> operation) {
   using RegValue = typename Register::ValueType;
   Argument lhs = generic::GetInstructionSource<Argument>(instruction, 0);
   Argument rhs = generic::GetInstructionSource<Argument>(instruction, 1);
   Result dest_value = operation(lhs, rhs);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<Result>(0, dest_value);
@@ -315,9 +315,9 @@
 // Generic helper function for writing a value to a register by destination
 // operand index.
 template <typename Register, typename Value>
-inline void RiscVWriteReg(const Instruction *instruction, int index,
+inline void RiscVWriteReg(const Instruction* instruction, int index,
                           Value value) {
-  auto *reg = static_cast<generic::RegisterDestinationOperand<Value> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<Value>*>(
                   instruction->Destination(index))
                   ->GetRegister();
   reg->data_buffer()->template Set<Value>(0, value);
@@ -325,12 +325,12 @@
 
 // Generic helper function for unary instructions.
 template <typename Register, typename Result, typename Argument>
-inline void RiscVUnaryOp(const Instruction *instruction,
+inline void RiscVUnaryOp(const Instruction* instruction,
                          std::function<Result(Argument)> operation) {
   using RegValue = typename Register::ValueType;
   auto lhs = generic::GetInstructionSource<Argument>(instruction, 0);
   Result dest_value = operation(lhs);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<Result>(0, dest_value);
@@ -339,7 +339,7 @@
 // Helper function for conditional branches.
 template <typename RegisterType, typename ValueType>
 static inline void BranchConditional(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<bool(ValueType, ValueType)> cond) {
   using UIntType =
       typename std::make_unsigned<typename RegisterType::ValueType>::type;
@@ -348,26 +348,26 @@
   if (cond(a, b)) {
     UIntType offset = generic::GetInstructionSource<UIntType>(instruction, 2);
     UIntType target = offset + instruction->address();
-    auto *db = instruction->Destination(0)->AllocateDataBuffer();
+    auto* db = instruction->Destination(0)->AllocateDataBuffer();
     db->SetSubmit<UIntType>(0, target);
-    auto state = static_cast<RiscVState *>(instruction->state());
+    auto state = static_cast<RiscVState*>(instruction->state());
     state->set_branch(true);
   }
 }
 
 // Generic helper function for load instructions.
 template <typename Register, typename ValueType>
-inline void RVLoad(const Instruction *instruction) {
+inline void RVLoad(const Instruction* instruction) {
   using RegVal = typename Register::ValueType;
   using URegVal = typename std::make_unsigned<RegVal>::type;
   URegVal base = generic::GetInstructionSource<URegVal>(instruction, 0);
   RegVal offset = generic::GetInstructionSource<RegVal>(instruction, 1);
   URegVal address = base + offset;
-  auto *value_db =
+  auto* value_db =
       instruction->state()->db_factory()->Allocate(sizeof(ValueType));
   value_db->set_latency(0);
-  auto *context = new LoadContext(value_db);
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* context = new LoadContext(value_db);
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->LoadMemory(instruction, address, value_db, instruction->child(),
                     context);
   context->DecRef();
@@ -375,12 +375,12 @@
 
 // Generic helper function for load instructions' "child instruction".
 template <typename Register, typename ValueType>
-inline void RVLoadChild(const Instruction *instruction) {
+inline void RVLoadChild(const Instruction* instruction) {
   using RegVal = typename Register::ValueType;
   using URegVal = typename std::make_unsigned<RegVal>::type;
   using SRegVal = typename std::make_signed<URegVal>::type;
-  LoadContext *context = static_cast<LoadContext *>(instruction->context());
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegVal> *>(
+  LoadContext* context = static_cast<LoadContext*>(instruction->context());
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegVal>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   if (std::is_signed<ValueType>::value) {
@@ -394,7 +394,7 @@
 
 // Generic helper function for store instructions.
 template <typename RegisterType, typename ValueType>
-inline void RVStore(const Instruction *instruction) {
+inline void RVStore(const Instruction* instruction) {
   using URegVal =
       typename std::make_unsigned<typename RegisterType::ValueType>::type;
   using SRegVal = typename std::make_signed<URegVal>::type;
@@ -402,8 +402,8 @@
   SRegVal offset = generic::GetInstructionSource<SRegVal>(instruction, 1);
   URegVal address = base + offset;
   ValueType value = generic::GetInstructionSource<ValueType>(instruction, 2);
-  auto *state = static_cast<RiscVState *>(instruction->state());
-  auto *db = state->db_factory()->Allocate(sizeof(ValueType));
+  auto* state = static_cast<RiscVState*>(instruction->state());
+  auto* db = state->db_factory()->Allocate(sizeof(ValueType));
   db->Set<ValueType>(0, value);
   state->StoreMemory(instruction, address, db);
   db->DecRef();
@@ -414,12 +414,12 @@
 // not really executing an fp operation that requires rounding.
 template <typename RegValue, typename Result, typename Argument>
 inline void RiscVBinaryNaNBoxOp(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<Result(Argument, Argument)> operation) {
   Argument lhs = GetNaNBoxedSource<RegValue, Argument>(instruction, 0);
   Argument rhs = GetNaNBoxedSource<RegValue, Argument>(instruction, 1);
   Result dest_value = operation(lhs, rhs);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   // Check to see if we need to NaN box the result.
@@ -428,7 +428,7 @@
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<RegValue>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * (sizeof(RegValue) - sizeof(Result));
     reg_value = (reg_value << shift) | dest_u_value;
@@ -441,11 +441,11 @@
 // Generic helper function for unary instructions with NaN boxing.
 template <typename DstRegValue, typename SrcRegValue, typename Result,
           typename Argument>
-inline void RiscVUnaryNaNBoxOp(const Instruction *instruction,
+inline void RiscVUnaryNaNBoxOp(const Instruction* instruction,
                                std::function<Result(Argument)> operation) {
   Argument lhs = GetNaNBoxedSource<SrcRegValue, Argument>(instruction, 0);
   Result dest_value = operation(lhs);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   // Check to see if we need to NaN box the result.
@@ -454,7 +454,7 @@
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<DstRegValue>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * (sizeof(DstRegValue) - sizeof(Result));
     reg_value = (reg_value << shift) | dest_u_value;
@@ -468,7 +468,7 @@
 // difference is that it handles rounding mode and performs NaN boxing.
 template <typename DstRegValue, typename SrcRegValue, typename Result,
           typename Argument>
-inline void RiscVUnaryFloatNaNBoxOp(const Instruction *instruction,
+inline void RiscVUnaryFloatNaNBoxOp(const Instruction* instruction,
                                     std::function<Result(Argument)> operation) {
   using ResUint = typename FPTypeInfo<Result>::UIntType;
   Argument lhs = GetNaNBoxedSource<SrcRegValue, Argument>(instruction, 0);
@@ -476,7 +476,7 @@
   int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
   // If the rounding mode is dynamic, read it from the current state.
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
       LOG(ERROR) << "Invalid rounding mode";
@@ -491,21 +491,21 @@
   }
   if (FPTypeInfo<Result>::IsNaN(dest_value) &&
       FPTypeInfo<Result>::SignBit(dest_value)) {
-    ResUint res_value = *reinterpret_cast<ResUint *>(&dest_value);
+    ResUint res_value = *reinterpret_cast<ResUint*>(&dest_value);
     res_value &= FPTypeInfo<Result>::kInfMask;
-    dest_value = *reinterpret_cast<Result *>(&res_value);
+    dest_value = *reinterpret_cast<Result*>(&res_value);
   }
-  auto *dest = instruction->Destination(0);
-  auto *reg_dest =
-      static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(dest);
-  auto *reg = reg_dest->GetRegister();
+  auto* dest = instruction->Destination(0);
+  auto* reg_dest =
+      static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(dest);
+  auto* reg = reg_dest->GetRegister();
   // Check to see if we need to NaN box the result.
   if (sizeof(DstRegValue) > sizeof(Result)) {
     // If the floating point Value is narrower than the register, the upper
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<DstRegValue>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * (sizeof(DstRegValue) - sizeof(Result));
     reg_value = (reg_value << shift) | dest_u_value;
@@ -518,13 +518,13 @@
 // Generic helper function for floating op instructions that do not require
 // NaN boxing since they produce non fp-values.
 template <typename Result, typename Argument>
-inline void RiscVUnaryFloatOp(const Instruction *instruction,
+inline void RiscVUnaryFloatOp(const Instruction* instruction,
                               std::function<Result(Argument)> operation) {
   Argument lhs = generic::GetInstructionSource<Argument>(instruction, 0);
   // Get the rounding mode.
   int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   // If the rounding mode is dynamic, read it from the current state.
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
@@ -538,11 +538,11 @@
     ScopedFPStatus set_fp_status(rv_fp->host_fp_interface(), rm_value);
     dest_value = operation(lhs);
   }
-  auto *dest = instruction->Destination(0);
+  auto* dest = instruction->Destination(0);
   using UInt = typename FPTypeInfo<Result>::UIntType;
-  auto *reg_dest =
-      static_cast<generic::RegisterDestinationOperand<UInt> *>(dest);
-  auto *reg = reg_dest->GetRegister();
+  auto* reg_dest =
+      static_cast<generic::RegisterDestinationOperand<UInt>*>(dest);
+  auto* reg = reg_dest->GetRegister();
   reg->data_buffer()->template Set<Result>(0, dest_value);
 }
 
@@ -550,13 +550,13 @@
 // NaN boxing since they produce non fp-values, but set fflags.
 template <typename Result, typename Argument>
 inline void RiscVUnaryFloatWithFflagsOp(
-    const Instruction *instruction,
-    std::function<Result(Argument, uint32_t &)> operation) {
+    const Instruction* instruction,
+    std::function<Result(Argument, uint32_t&)> operation) {
   Argument lhs = generic::GetInstructionSource<Argument>(instruction, 0);
   // Get the rounding mode.
   int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   // If the rounding mode is dynamic, read it from the current state.
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
@@ -571,13 +571,13 @@
     ScopedFPStatus set_fp_status(rv_fp->host_fp_interface(), rm_value);
     dest_value = operation(lhs, flag);
   }
-  auto *dest = instruction->Destination(0);
+  auto* dest = instruction->Destination(0);
   using UInt = typename FPTypeInfo<Result>::UIntType;
-  auto *reg_dest =
-      static_cast<generic::RegisterDestinationOperand<UInt> *>(dest);
-  auto *reg = reg_dest->GetRegister();
+  auto* reg_dest =
+      static_cast<generic::RegisterDestinationOperand<UInt>*>(dest);
+  auto* reg = reg_dest->GetRegister();
   reg->data_buffer()->template Set<Result>(0, dest_value);
-  auto *flag_db = instruction->Destination(1)->AllocateDataBuffer();
+  auto* flag_db = instruction->Destination(1)->AllocateDataBuffer();
   flag_db->Set<uint32_t>(0, flag);
   flag_db->Submit();
 }
@@ -586,7 +586,7 @@
 // difference is that it handles rounding mode.
 template <typename Register, typename Result, typename Argument>
 inline void RiscVBinaryFloatNaNBoxOp(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<Result(Argument, Argument)> operation) {
   Argument lhs = GetNaNBoxedSource<Register, Argument>(instruction, 0);
   Argument rhs = GetNaNBoxedSource<Register, Argument>(instruction, 1);
@@ -594,7 +594,7 @@
   // Get the rounding mode.
   int rm_value = generic::GetInstructionSource<int>(instruction, 2);
 
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   // If the rounding mode is dynamic, read it from the current state.
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
@@ -609,10 +609,10 @@
     dest_value = operation(lhs, rhs);
   }
   if (FPTypeInfo<Result>::IsNaN(dest_value)) {
-    *reinterpret_cast<typename FPTypeInfo<Result>::UIntType *>(&dest_value) =
+    *reinterpret_cast<typename FPTypeInfo<Result>::UIntType*>(&dest_value) =
         FPTypeInfo<Result>::kCanonicalNaN;
   }
-  auto *reg = static_cast<generic::RegisterDestinationOperand<Register> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<Register>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   // Check to see if we need to NaN box the result.
@@ -621,7 +621,7 @@
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<Register>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * (sizeof(Register) - sizeof(Result));
     reg_value = (reg_value << shift) | dest_u_value;
@@ -634,7 +634,7 @@
 // Generic helper function for ternary floating point instructions.
 template <typename Register, typename Result, typename Argument>
 inline void RiscVTernaryFloatNaNBoxOp(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<Result(Argument, Argument, Argument)> operation) {
   Argument rs1 = generic::GetInstructionSource<Argument>(instruction, 0);
   Argument rs2 = generic::GetInstructionSource<Argument>(instruction, 1);
@@ -642,7 +642,7 @@
   // Get the rounding mode.
   int rm_value = generic::GetInstructionSource<int>(instruction, 3);
 
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   // If the rounding mode is dynamic, read it from the current state.
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
@@ -656,7 +656,7 @@
     ScopedFPStatus fp_status(rv_fp->host_fp_interface(), rm_value);
     dest_value = operation(rs1, rs2, rs3);
   }
-  auto *reg = static_cast<generic::RegisterDestinationOperand<Register> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<Register>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   // Check to see if we need to NaN box the result.
@@ -665,7 +665,7 @@
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<Register>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * (sizeof(Register) - sizeof(Result));
     reg_value = (reg_value << shift) | dest_u_value;
@@ -679,7 +679,7 @@
 template <typename T>
 typename FPTypeInfo<T>::UIntType ClassifyFP(T val) {
   using UIntType = typename FPTypeInfo<T>::UIntType;
-  auto int_value = *reinterpret_cast<UIntType *>(&val);
+  auto int_value = *reinterpret_cast<UIntType*>(&val);
   UIntType sign = int_value >> (FPTypeInfo<T>::kBitSize - 1);
   UIntType exp_mask = (1 << FPTypeInfo<T>::kExpSize) - 1;
   UIntType exp = (int_value >> FPTypeInfo<T>::kSigSize) & exp_mask;
diff --git a/riscv/riscv_instrumentation_control.cc b/riscv/riscv_instrumentation_control.cc
index 24d913b..cea4aac 100644
--- a/riscv/riscv_instrumentation_control.cc
+++ b/riscv/riscv_instrumentation_control.cc
@@ -34,8 +34,8 @@
 using ::mpact::sim::util::MemoryUseProfiler;
 
 RiscVInstrumentationControl::RiscVInstrumentationControl(
-    DebugCommandShell *shell, RiscVTop *riscv_top,
-    MemoryUseProfiler *mem_profiler)
+    DebugCommandShell* shell, RiscVTop* riscv_top,
+    MemoryUseProfiler* mem_profiler)
     : shell_(shell),
       top_(riscv_top),
       mem_profiler_(mem_profiler),
@@ -44,8 +44,8 @@
 }
 
 bool RiscVInstrumentationControl::PerformShellCommand(
-    absl::string_view input, const DebugCommandShell::CoreAccess &core_access,
-    std::string &output) {
+    absl::string_view input, const DebugCommandShell::CoreAccess& core_access,
+    std::string& output) {
   std::string cmd;
   std::string what;
   std::string where;
@@ -116,7 +116,7 @@
       return true;
     }
     // Let's see if it is a symbol.
-    auto *loader = core_access.loader_getter();
+    auto* loader = core_access.loader_getter();
     if (loader == nullptr) {
       output = "Error: cannot perform symbol lookup";
       return true;
diff --git a/riscv/riscv_instrumentation_control.h b/riscv/riscv_instrumentation_control.h
index af5f937..911eb08 100644
--- a/riscv/riscv_instrumentation_control.h
+++ b/riscv/riscv_instrumentation_control.h
@@ -29,19 +29,19 @@
 
 class RiscVInstrumentationControl {
  public:
-  RiscVInstrumentationControl(DebugCommandShell *shell, RiscVTop *riscv_top,
-                              util::MemoryUseProfiler *mem_profiler);
+  RiscVInstrumentationControl(DebugCommandShell* shell, RiscVTop* riscv_top,
+                              util::MemoryUseProfiler* mem_profiler);
 
   bool PerformShellCommand(absl::string_view input,
-                           const DebugCommandShell::CoreAccess &core_access,
-                           std::string &output);
+                           const DebugCommandShell::CoreAccess& core_access,
+                           std::string& output);
 
   std::string Usage() const;
 
  private:
-  DebugCommandShell *shell_;
-  RiscVTop *top_ = nullptr;
-  util::MemoryUseProfiler *mem_profiler_;
+  DebugCommandShell* shell_;
+  RiscVTop* top_ = nullptr;
+  util::MemoryUseProfiler* mem_profiler_;
   LazyRE2 pattern_re_;
 };
 
diff --git a/riscv/riscv_jvt.h b/riscv/riscv_jvt.h
index 0e89765..c8aa3a8 100644
--- a/riscv/riscv_jvt.h
+++ b/riscv/riscv_jvt.h
@@ -27,7 +27,7 @@
 class RiscVJvtCsr : public RiscVSimpleCsr<T> {
  public:
   RiscVJvtCsr(std::string name, RiscVCsrEnum index, T initial_value,
-              RiscVState *state)
+              RiscVState* state)
       : RiscVSimpleCsr<T>(name, index, initial_value, state) {}
   // Clear the low 6 bits of the value (sets mode to 0b00'0000). This will be
   // modified as any new modes are added.
diff --git a/riscv/riscv_m_instructions.cc b/riscv/riscv_m_instructions.cc
index 5761595..c7e231f 100644
--- a/riscv/riscv_m_instructions.cc
+++ b/riscv/riscv_m_instructions.cc
@@ -38,7 +38,7 @@
 using IntReg = typename std::make_signed<RV32Register::ValueType>::type;
 using WideIntReg = typename WideType<IntReg>::type;
 
-void MMul(Instruction *instruction) {
+void MMul(Instruction* instruction) {
   BinaryOp<UintReg, WideIntReg>(instruction, [](WideIntReg a_wide,
                                                 WideIntReg b_wide) {
     WideIntReg c_wide = a_wide * b_wide;
@@ -46,21 +46,21 @@
   });
 }
 
-void MMulh(Instruction *instruction) {
+void MMulh(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](WideIntReg a_wide, WideIntReg b_wide) {
     WideIntReg c_wide = a_wide * b_wide;
     return static_cast<IntReg>(c_wide >> 32);
   });
 }
 
-void MMulhu(Instruction *instruction) {
+void MMulhu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](WideUintReg a_wide, WideUintReg b_wide) {
     WideUintReg c_wide = a_wide * b_wide;
     return static_cast<UintReg>(c_wide >> 32);
   });
 }
 
-void MMulhsu(Instruction *instruction) {
+void MMulhsu(Instruction* instruction) {
   BinaryOp<UintReg, WideIntReg, WideUintReg>(
       instruction, [](WideIntReg a_wide, WideUintReg b_wide) {
         WideIntReg c_wide = a_wide * b_wide;
@@ -68,7 +68,7 @@
       });
 }
 
-void MDiv(Instruction *instruction) {
+void MDiv(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](IntReg a, IntReg b) -> IntReg {
     if (b == 0) return -1;
     if ((b == -1) && (a == std::numeric_limits<IntReg>::min())) {
@@ -78,14 +78,14 @@
   });
 }
 
-void MDivu(Instruction *instruction) {
+void MDivu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](UintReg a, UintReg b) -> UintReg {
     if (b == 0) return std::numeric_limits<UintReg>::max();
     return a / b;
   });
 }
 
-void MRem(Instruction *instruction) {
+void MRem(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](IntReg a, IntReg b) -> IntReg {
     if (b == 0) return a;
     if ((b == -1) && (a == std::numeric_limits<IntReg>::min())) {
@@ -95,7 +95,7 @@
   });
 }
 
-void MRemu(Instruction *instruction) {
+void MRemu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](UintReg a, UintReg b) {
     if (b == 0) return a;
     return a % b;
@@ -114,7 +114,7 @@
 using WideIntReg = typename WideType<IntReg>::type;
 using NarrowIntReg = typename NarrowType<IntReg>::type;
 
-void MMul(Instruction *instruction) {
+void MMul(Instruction* instruction) {
   BinaryOp<UintReg, WideIntReg>(instruction, [](WideIntReg a_wide,
                                                 WideIntReg b_wide) {
     WideIntReg c_wide = a_wide * b_wide;
@@ -122,21 +122,21 @@
   });
 }
 
-void MMulh(Instruction *instruction) {
+void MMulh(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](WideIntReg a_wide, WideIntReg b_wide) {
     WideIntReg c_wide = a_wide * b_wide;
     return static_cast<IntReg>(c_wide >> 64);
   });
 }
 
-void MMulhu(Instruction *instruction) {
+void MMulhu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](WideUintReg a_wide, WideUintReg b_wide) {
     WideUintReg c_wide = a_wide * b_wide;
     return static_cast<UintReg>(c_wide >> 64);
   });
 }
 
-void MMulhsu(Instruction *instruction) {
+void MMulhsu(Instruction* instruction) {
   BinaryOp<UintReg, WideIntReg, WideUintReg>(
       instruction, [](WideIntReg a_wide, WideUintReg b_wide) {
         bool negate = false;
@@ -156,7 +156,7 @@
       });
 }
 
-void MDiv(Instruction *instruction) {
+void MDiv(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](IntReg a, IntReg b) -> IntReg {
     if (b == 0) return -1;
     if ((b == -1) && (a == std::numeric_limits<IntReg>::min())) {
@@ -166,14 +166,14 @@
   });
 }
 
-void MDivu(Instruction *instruction) {
+void MDivu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](UintReg a, UintReg b) -> UintReg {
     if (b == 0) return std::numeric_limits<UintReg>::max();
     return a / b;
   });
 }
 
-void MRem(Instruction *instruction) {
+void MRem(Instruction* instruction) {
   BinaryOp<IntReg>(instruction, [](IntReg a, IntReg b) -> IntReg {
     if (b == 0) return a;
     if ((b == -1) && (a == std::numeric_limits<IntReg>::min())) {
@@ -183,14 +183,14 @@
   });
 }
 
-void MRemu(Instruction *instruction) {
+void MRemu(Instruction* instruction) {
   BinaryOp<UintReg>(instruction, [](UintReg a, UintReg b) {
     if (b == 0) return a;
     return a % b;
   });
 }
 
-void MMulw(Instruction *instruction) {
+void MMulw(Instruction* instruction) {
   BinaryOp<IntReg, NarrowIntReg>(instruction,
                                  [](NarrowIntReg a, NarrowIntReg b) -> IntReg {
                                    NarrowIntReg c = a * b;
@@ -199,7 +199,7 @@
                                  });
 }
 
-void MDivw(Instruction *instruction) {
+void MDivw(Instruction* instruction) {
   BinaryOp<IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) -> IntReg {
         if (b == 0) return static_cast<IntReg>(-1);
@@ -211,7 +211,7 @@
       });
 }
 
-void MDivuw(Instruction *instruction) {
+void MDivuw(Instruction* instruction) {
   BinaryOp<IntReg, NarrowUintReg>(
       instruction, [](NarrowUintReg a, NarrowUintReg b) -> IntReg {
         if (b == 0) return std::numeric_limits<UintReg>::max();
@@ -219,7 +219,7 @@
       });
 }
 
-void MRemw(Instruction *instruction) {
+void MRemw(Instruction* instruction) {
   BinaryOp<IntReg, NarrowIntReg>(
       instruction, [](NarrowIntReg a, NarrowIntReg b) -> IntReg {
         if (b == 0) return static_cast<IntReg>(a);
@@ -230,7 +230,7 @@
       });
 }
 
-void MRemuw(Instruction *instruction) {
+void MRemuw(Instruction* instruction) {
   BinaryOp<IntReg, NarrowUintReg>(
       instruction, [](NarrowUintReg a, NarrowUintReg b) -> IntReg {
         if (b == 0) return static_cast<IntReg>(static_cast<NarrowIntReg>(a));
diff --git a/riscv/riscv_m_instructions.h b/riscv/riscv_m_instructions.h
index b2f6fbb..055e7d3 100644
--- a/riscv/riscv_m_instructions.h
+++ b/riscv/riscv_m_instructions.h
@@ -27,33 +27,33 @@
 // and rd as destination operand 0.
 namespace RV32 {
 
-void MMul(Instruction *instruction);
-void MMulh(Instruction *instruction);
-void MMulhu(Instruction *instruction);
-void MMulhsu(Instruction *instruction);
-void MDiv(Instruction *instruction);
-void MDivu(Instruction *instruction);
-void MRem(Instruction *instruction);
-void MRemu(Instruction *instruction);
+void MMul(Instruction* instruction);
+void MMulh(Instruction* instruction);
+void MMulhu(Instruction* instruction);
+void MMulhsu(Instruction* instruction);
+void MDiv(Instruction* instruction);
+void MDivu(Instruction* instruction);
+void MRem(Instruction* instruction);
+void MRemu(Instruction* instruction);
 
 }  // namespace RV32
 
 namespace RV64 {
 
-void MMul(Instruction *instruction);
-void MMulh(Instruction *instruction);
-void MMulhu(Instruction *instruction);
-void MMulhsu(Instruction *instruction);
-void MDiv(Instruction *instruction);
-void MDivu(Instruction *instruction);
-void MRem(Instruction *instruction);
-void MRemu(Instruction *instruction);
+void MMul(Instruction* instruction);
+void MMulh(Instruction* instruction);
+void MMulhu(Instruction* instruction);
+void MMulhsu(Instruction* instruction);
+void MDiv(Instruction* instruction);
+void MDivu(Instruction* instruction);
+void MRem(Instruction* instruction);
+void MRemu(Instruction* instruction);
 
-void MMulw(Instruction *instruction);
-void MDivw(Instruction *instruction);
-void MDivuw(Instruction *instruction);
-void MRemw(Instruction *instruction);
-void MRemuw(Instruction *instruction);
+void MMulw(Instruction* instruction);
+void MDivw(Instruction* instruction);
+void MDivuw(Instruction* instruction);
+void MRemw(Instruction* instruction);
+void MRemuw(Instruction* instruction);
 }  // namespace RV64
 
 }  // namespace riscv
diff --git a/riscv/riscv_misa.cc b/riscv/riscv_misa.cc
index b6d66ee..6a9da83 100644
--- a/riscv/riscv_misa.cc
+++ b/riscv/riscv_misa.cc
@@ -40,10 +40,10 @@
 }
 
 // Constructors.
-RiscVMIsa::RiscVMIsa(uint32_t initial_value, ArchState *state)
+RiscVMIsa::RiscVMIsa(uint32_t initial_value, ArchState* state)
     : RiscVMIsa(StretchMisa32(initial_value), state) {}
 
-RiscVMIsa::RiscVMIsa(uint64_t initial_value, ArchState *state)
+RiscVMIsa::RiscVMIsa(uint64_t initial_value, ArchState* state)
     : RiscVSimpleCsr<uint64_t>("misa", RiscVCsrEnum::kMIsa, initial_value,
                                /*read_mask*/ 0xc000'0000'03ff'ffffULL,
                                /*write_mask*/ 0, state) {
diff --git a/riscv/riscv_misa.h b/riscv/riscv_misa.h
index d8ec1b5..3edb00e 100644
--- a/riscv/riscv_misa.h
+++ b/riscv/riscv_misa.h
@@ -35,8 +35,8 @@
  public:
   // Disable default constructor.
   RiscVMIsa() = delete;
-  RiscVMIsa(uint32_t initial_value, ArchState *state);
-  RiscVMIsa(uint64_t initial_value, ArchState *state);
+  RiscVMIsa(uint32_t initial_value, ArchState* state);
+  RiscVMIsa(uint64_t initial_value, ArchState* state);
   ~RiscVMIsa() override = default;
 
   // RiscVSimpleCsr method overrides.
diff --git a/riscv/riscv_plic.cc b/riscv/riscv_plic.cc
index 10fb89c..0b9be95 100644
--- a/riscv/riscv_plic.cc
+++ b/riscv/riscv_plic.cc
@@ -33,7 +33,7 @@
   // Initialize the gateway info.
   gateway_info_ = new GatewayInfo[num_sources_];
   // Initialize the context interface.
-  context_if_ = new RiscVPlicIrqInterface *[num_contexts_];
+  context_if_ = new RiscVPlicIrqInterface*[num_contexts_];
   context_irq_ = new bool[num_contexts_];
   for (int i = 0; i < num_contexts_; ++i) {
     context_if_[i] = nullptr;
@@ -47,7 +47,7 @@
   std::memset(interrupt_pending_, 0,
               sizeof(uint32_t) * (num_sources_ / 32 + 1));
   // Initialize the interrupt enabled bits.
-  interrupt_enabled_ = new uint32_t *[num_contexts_];
+  interrupt_enabled_ = new uint32_t*[num_contexts_];
   for (int i = 0; i < num_contexts_; ++i) {
     interrupt_enabled_[i] = new uint32_t[num_sources_ / 32 + 1];
     std::memset(interrupt_enabled_[i], 0,
@@ -149,7 +149,7 @@
   // No action for clearing a non-level based interrupt.
   if (!value && !is_level) return;
 
-  auto &info = gateway_info_[source];
+  auto& info = gateway_info_[source];
   if (!info.ready || !value) {
     if (is_level) info.pending = value;
     return;
@@ -197,8 +197,8 @@
 
 // Implementation of the memory load interface for reading memory mapped
 // registers.
-void RiscVPlic::Load(uint64_t address, DataBuffer *db, Instruction *inst,
-                     ReferenceCount *context) {
+void RiscVPlic::Load(uint64_t address, DataBuffer* db, Instruction* inst,
+                     ReferenceCount* context) {
   uint32_t offset = address & 0xff'ffff;
   switch (db->size<uint8_t>()) {
     case 1:
@@ -237,15 +237,15 @@
 }
 
 // No support for vector loads.
-void RiscVPlic::Load(DataBuffer *address_db, DataBuffer *mask_db, int el_size,
-                     DataBuffer *db, Instruction *inst,
-                     ReferenceCount *context) {
+void RiscVPlic::Load(DataBuffer* address_db, DataBuffer* mask_db, int el_size,
+                     DataBuffer* db, Instruction* inst,
+                     ReferenceCount* context) {
   LOG(FATAL) << "RiscVPlic does not support vector loads";
 }
 
 // Implementation of memory store interface to support writes to memory mapped
 // registers.
-void RiscVPlic::Store(uint64_t address, DataBuffer *db) {
+void RiscVPlic::Store(uint64_t address, DataBuffer* db) {
   uint32_t offset = address & 0xff'ffff;
   switch (db->size<uint8_t>()) {
     case 1:
@@ -262,13 +262,13 @@
   }
 }
 
-void RiscVPlic::SetContext(int context_no, RiscVPlicIrqInterface *context_if) {
+void RiscVPlic::SetContext(int context_no, RiscVPlicIrqInterface* context_if) {
   context_if_[context_no] = context_if;
 }
 
 // No support for vector stores.
-void RiscVPlic::Store(DataBuffer *address, DataBuffer *mask, int el_size,
-                      DataBuffer *db) {
+void RiscVPlic::Store(DataBuffer* address, DataBuffer* mask, int el_size,
+                      DataBuffer* db) {
   LOG(FATAL) << "RiscVPlic does not support vector stores";
 }
 
@@ -348,7 +348,7 @@
     // If the priority is being changed from 0 to non-zero, see if there is a
     // pending level based interrupt, and if so, set the plic pending bit.
     if (prev == 0 && value != 0) {
-      auto &info = gateway_info_[source];
+      auto& info = gateway_info_[source];
       if (info.ready && info.pending) {
         SetPlicPendingInterrupt(source);
       }
@@ -550,7 +550,7 @@
   // interrupt_claim_complete_ value.
   auto source = interrupt_claim_complete_[context];
   interrupt_claim_complete_[context] = 0;
-  auto &info = gateway_info_[source];
+  auto& info = gateway_info_[source];
   // Check to see if there's a pending level based interrupt w priority > 0.
   if (info.pending && (interrupt_priority_[source] > 0)) {
     // Set the plic pending bit but no need to set the ready bit as this will
@@ -578,7 +578,7 @@
   return (interrupt_pending_[word] & (1 << bit)) != 0;
 }
 
-RiscVPlicSourceInterface::RiscVPlicSourceInterface(RiscVPlic *plic, int source,
+RiscVPlicSourceInterface::RiscVPlicSourceInterface(RiscVPlic* plic, int source,
                                                    bool is_level)
     : plic_(plic), source_(source), is_level_(is_level) {}
 
diff --git a/riscv/riscv_plic.h b/riscv/riscv_plic.h
index 8d8745f..37dc6d9 100644
--- a/riscv/riscv_plic.h
+++ b/riscv/riscv_plic.h
@@ -61,8 +61,8 @@
   // capable of receiving and handling interrupts.
   RiscVPlic(int num_sources, int num_contexts);
   RiscVPlic() = delete;
-  RiscVPlic(const RiscVPlic &) = delete;
-  RiscVPlic &operator=(const RiscVPlic &) = delete;
+  RiscVPlic(const RiscVPlic&) = delete;
+  RiscVPlic& operator=(const RiscVPlic&) = delete;
   ~RiscVPlic() override;
 
   // Configure the PLIC state according to the source and context configuration
@@ -88,19 +88,19 @@
 
   // MemoryInterface overrides.
   // Non-vector load method.
-  void Load(uint64_t address, DataBuffer *db, Instruction *inst,
-            ReferenceCount *context) override;
+  void Load(uint64_t address, DataBuffer* db, Instruction* inst,
+            ReferenceCount* context) override;
   // Vector load method - this is stubbed out.
-  void Load(DataBuffer *address_db, DataBuffer *mask_db, int el_size,
-            DataBuffer *db, Instruction *inst,
-            ReferenceCount *context) override;
+  void Load(DataBuffer* address_db, DataBuffer* mask_db, int el_size,
+            DataBuffer* db, Instruction* inst,
+            ReferenceCount* context) override;
   // Non-vector store method.
-  void Store(uint64_t address, DataBuffer *db) override;
+  void Store(uint64_t address, DataBuffer* db) override;
   // Vector store method - this is stubbed out.
-  void Store(DataBuffer *address, DataBuffer *mask, int el_size,
-             DataBuffer *db) override;
+  void Store(DataBuffer* address, DataBuffer* mask, int el_size,
+             DataBuffer* db) override;
 
-  void SetContext(int context_no, RiscVPlicIrqInterface *context_if);
+  void SetContext(int context_no, RiscVPlicIrqInterface* context_if);
 
  private:
   struct GatewayInfo {
@@ -128,22 +128,22 @@
   int num_sources_;
   int num_contexts_;
   // Interface to call to write the IRQ line for a context.
-  RiscVPlicIrqInterface **context_if_;
+  RiscVPlicIrqInterface** context_if_;
   // Last value written to the IRQ line for a context.
-  bool *context_irq_ = nullptr;
+  bool* context_irq_ = nullptr;
   // Source gateway info.
-  GatewayInfo *gateway_info_ = nullptr;
+  GatewayInfo* gateway_info_ = nullptr;
   // Interrupt priorities by source.
-  uint32_t *interrupt_priority_ = nullptr;
+  uint32_t* interrupt_priority_ = nullptr;
   // Pending interrupts by source - 32 bits per word.
-  uint32_t *interrupt_pending_ = nullptr;
+  uint32_t* interrupt_pending_ = nullptr;
   // Enable bits per context per source - 32 bits per word.
   // Array is organized as interrupt_enabled_[context][source / 32].
-  uint32_t **interrupt_enabled_ = nullptr;
+  uint32_t** interrupt_enabled_ = nullptr;
   // Priority threshold by context.
-  uint32_t *priority_threshold_ = nullptr;
+  uint32_t* priority_threshold_ = nullptr;
   // Interrupt claim/complete register by context.
-  uint32_t *interrupt_claim_complete_ = nullptr;
+  uint32_t* interrupt_claim_complete_ = nullptr;
   // Map from source to context that has the source enabled. This must be
   // updated whenever an an enable bit is changed for a context.
   absl::btree_multimap<int, int> source_to_context_;
@@ -153,7 +153,7 @@
 
 class RiscVPlicSourceInterface : public RiscVPlicIrqInterface {
  public:
-  RiscVPlicSourceInterface(RiscVPlic *plic, int source, bool is_level);
+  RiscVPlicSourceInterface(RiscVPlic* plic, int source, bool is_level);
   RiscVPlicSourceInterface() = delete;
   ~RiscVPlicSourceInterface() override = default;
   void SetIrq(bool irq_value) override {
@@ -161,7 +161,7 @@
   };
 
  private:
-  RiscVPlic *plic_ = nullptr;
+  RiscVPlic* plic_ = nullptr;
   int source_ = 0;
   bool is_level_ = false;
 };
diff --git a/riscv/riscv_priv_instructions.cc b/riscv/riscv_priv_instructions.cc
index fd23133..6508ee5 100644
--- a/riscv/riscv_priv_instructions.cc
+++ b/riscv/riscv_priv_instructions.cc
@@ -38,12 +38,12 @@
 using UIntReg =
     typename std::make_unsigned<typename RegisterType::ValueType>::type;
 
-void RiscVPrivURet(const Instruction *inst) {
+void RiscVPrivURet(const Instruction* inst) {
   // TODO Fill in semantics.
 }
 
-void RiscVPrivSRet(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSRet(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   if (state->privilege_mode() != PrivilegeMode::kSupervisor) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
                 *ExceptionCode::kIllegalInstruction, inst->address(), inst);
@@ -60,9 +60,9 @@
                                " sret: cannot access sepc");
     return;
   }
-  auto *sepc = *res;
+  auto* sepc = *res;
   // Get db for PC.
-  auto *db = inst->Destination(0)->AllocateDataBuffer();
+  auto* db = inst->Destination(0)->AllocateDataBuffer();
   // Write the contents of mepc to the pc.
   db->SetSubmit<UIntReg>(0, sepc->AsUint32());
   state->set_branch(true);
@@ -73,7 +73,7 @@
                                " sret: cannot access mstatus");
     return;
   }
-  auto *mstatus = static_cast<RiscVMStatus *>(*res);
+  auto* mstatus = static_cast<RiscVMStatus*>(*res);
   // Get misa too.
   res = state->csr_set()->GetCsr(*RiscVCsrEnum::kMIsa);
   if (!res.ok()) {
@@ -97,8 +97,8 @@
   mstatus->Submit();
 }
 
-void RiscVPrivMRet(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivMRet(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   if (state->privilege_mode() != PrivilegeMode::kMachine) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
                 *ExceptionCode::kIllegalInstruction, inst->address(), inst);
@@ -110,9 +110,9 @@
                                " mret: cannot access mepc");
     return;
   }
-  auto *mepc = *res;
+  auto* mepc = *res;
   // Get db for PC.
-  auto *db = inst->Destination(0)->AllocateDataBuffer();
+  auto* db = inst->Destination(0)->AllocateDataBuffer();
   // Write the contents of mepc to the pc.
   db->SetSubmit<UIntReg>(0, mepc->AsUint32());
   state->set_branch(true);
@@ -123,7 +123,7 @@
                                " mret: cannot access mstatus");
     return;
   }
-  auto *mstatus = static_cast<RiscVMStatus *>(*res);
+  auto* mstatus = static_cast<RiscVMStatus*>(*res);
   // Get misa too.
   res = state->csr_set()->GetCsr(*RiscVCsrEnum::kMIsa);
   if (!res.ok()) {
@@ -131,7 +131,7 @@
                                " mret: cannot access isa");
     return;
   }
-  auto *misa = static_cast<RiscVMIsa *>(*res);
+  auto* misa = static_cast<RiscVMIsa*>(*res);
   // Set mstatus:mpp to new privilege mode as per RiscV Privileged Architectures
   // Arch V20190608-Priv-MSU-Ratified page 21:
   // When executing an xRet instruction, supposing xPP holds the value y, xIE
@@ -160,12 +160,12 @@
 using UIntReg =
     typename std::make_unsigned<typename RegisterType::ValueType>::type;
 
-void RiscVPrivURet(const Instruction *inst) {
+void RiscVPrivURet(const Instruction* inst) {
   // TODO Fill in semantics.
 }
 
-void RiscVPrivSRet(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSRet(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   if (*state->privilege_mode() < *PrivilegeMode::kSupervisor) {
     LOG(ERROR) << absl::StrCat(
         "sret executed when not in Supervisor mode at pc = 0x",
@@ -185,9 +185,9 @@
                                " sret: cannot access sepc");
     return;
   }
-  auto *sepc = *res;
+  auto* sepc = *res;
   // Get db for PC.
-  auto *db = inst->Destination(0)->AllocateDataBuffer();
+  auto* db = inst->Destination(0)->AllocateDataBuffer();
   // Write the contents of mepc to the pc.
   db->SetSubmit<UIntReg>(0, sepc->AsUint64());
   state->set_branch(true);
@@ -198,7 +198,7 @@
                                " sret: cannot access mstatus");
     return;
   }
-  auto *mstatus = static_cast<RiscVMStatus *>(*res);
+  auto* mstatus = static_cast<RiscVMStatus*>(*res);
   // Get misa too.
   res = state->csr_set()->GetCsr(*RiscVCsrEnum::kMIsa);
   if (!res.ok()) {
@@ -223,7 +223,7 @@
                                " mret: cannot access isa");
     return;
   }
-  auto *misa = static_cast<RiscVMIsa *>(*res);
+  auto* misa = static_cast<RiscVMIsa*>(*res);
   if (misa->HasUserMode()) {
     mstatus->set_spp(*PrivilegeMode::kUser);
   } else {
@@ -234,8 +234,8 @@
   mstatus->Submit();
 }
 
-void RiscVPrivMRet(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivMRet(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   if (state->privilege_mode() != PrivilegeMode::kMachine) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
                 *ExceptionCode::kIllegalInstruction, inst->address(), inst);
@@ -247,9 +247,9 @@
                                " mret: cannot access mepc");
     return;
   }
-  auto *mepc = *res;
+  auto* mepc = *res;
   // Get db for PC.
-  auto *db = inst->Destination(0)->AllocateDataBuffer();
+  auto* db = inst->Destination(0)->AllocateDataBuffer();
   // Write the contents of mepc to the pc.
   db->SetSubmit<UIntReg>(0, mepc->AsUint64());
   state->set_branch(true);
@@ -260,7 +260,7 @@
                                " mret: cannot access mstatus");
     return;
   }
-  auto *mstatus = static_cast<RiscVMStatus *>(*res);
+  auto* mstatus = static_cast<RiscVMStatus*>(*res);
   // Get misa too.
   res = state->csr_set()->GetCsr(*RiscVCsrEnum::kMIsa);
   if (!res.ok()) {
@@ -268,7 +268,7 @@
                                " mret: cannot access isa");
     return;
   }
-  auto *misa = static_cast<RiscVMIsa *>(*res);
+  auto* misa = static_cast<RiscVMIsa*>(*res);
   // Set mstatus:mpp to new privilege mode as per RiscV Privileged Architectures
   // Arch V20190608-Priv-MSU-Ratified page 21:
   // When executing an xRet instruction, supposing xPP holds the value y, xIE
@@ -291,16 +291,16 @@
 
 }  // namespace RV64
 
-void RiscVPrivWfi(const Instruction *inst) {
+void RiscVPrivWfi(const Instruction* inst) {
   // WFI is treated as a no-op, unless the user sets a callback.
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   state->WFI(inst);
 }
 
-void RiscVPrivSFenceVmaZZ(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSFenceVmaZZ(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   PrivilegeMode mode = state->privilege_mode();
-  auto *mstatus = state->mstatus();
+  auto* mstatus = state->mstatus();
   if ((mode == PrivilegeMode::kUser) ||
       ((mode == PrivilegeMode::kSupervisor) && mstatus->tvm())) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
@@ -310,10 +310,10 @@
   // TODO Fill in semantics.
 }
 
-void RiscVPrivSFenceVmaZN(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSFenceVmaZN(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   PrivilegeMode mode = state->privilege_mode();
-  auto *mstatus = state->mstatus();
+  auto* mstatus = state->mstatus();
   if ((mode == PrivilegeMode::kUser) ||
       ((mode == PrivilegeMode::kSupervisor) && mstatus->tvm())) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
@@ -323,10 +323,10 @@
   // TODO Fill in semantics.
 }
 
-void RiscVPrivSFenceVmaNZ(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSFenceVmaNZ(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   PrivilegeMode mode = state->privilege_mode();
-  auto *mstatus = state->mstatus();
+  auto* mstatus = state->mstatus();
   if ((mode == PrivilegeMode::kUser) ||
       ((mode == PrivilegeMode::kSupervisor) && mstatus->tvm())) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
@@ -336,10 +336,10 @@
   // TODO Fill in semantics.
 }
 
-void RiscVPrivSFenceVmaNN(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RiscVPrivSFenceVmaNN(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   PrivilegeMode mode = state->privilege_mode();
-  auto *mstatus = state->mstatus();
+  auto* mstatus = state->mstatus();
   if ((mode == PrivilegeMode::kUser) ||
       ((mode == PrivilegeMode::kSupervisor) && mstatus->tvm())) {
     state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
diff --git a/riscv/riscv_priv_instructions.h b/riscv/riscv_priv_instructions.h
index 5b5238e..a93ee7a 100644
--- a/riscv/riscv_priv_instructions.h
+++ b/riscv/riscv_priv_instructions.h
@@ -27,22 +27,22 @@
 using ::mpact::sim::generic::Instruction;
 
 namespace RV32 {
-void RiscVPrivURet(const Instruction *inst);
-void RiscVPrivSRet(const Instruction *inst);
-void RiscVPrivMRet(const Instruction *inst);
+void RiscVPrivURet(const Instruction* inst);
+void RiscVPrivSRet(const Instruction* inst);
+void RiscVPrivMRet(const Instruction* inst);
 }  // namespace RV32
 
 namespace RV64 {
-void RiscVPrivURet(const Instruction *inst);
-void RiscVPrivSRet(const Instruction *inst);
-void RiscVPrivMRet(const Instruction *inst);
+void RiscVPrivURet(const Instruction* inst);
+void RiscVPrivSRet(const Instruction* inst);
+void RiscVPrivMRet(const Instruction* inst);
 }  // namespace RV64
 
-void RiscVPrivWfi(const Instruction *inst);
-void RiscVPrivSFenceVmaZZ(const Instruction *inst);
-void RiscVPrivSFenceVmaZN(const Instruction *inst);
-void RiscVPrivSFenceVmaNZ(const Instruction *inst);
-void RiscVPrivSFenceVmaNN(const Instruction *inst);
+void RiscVPrivWfi(const Instruction* inst);
+void RiscVPrivSFenceVmaZZ(const Instruction* inst);
+void RiscVPrivSFenceVmaZN(const Instruction* inst);
+void RiscVPrivSFenceVmaNZ(const Instruction* inst);
+void RiscVPrivSFenceVmaNN(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_register.cc b/riscv/riscv_register.cc
index 957b341..41ee74a 100644
--- a/riscv/riscv_register.cc
+++ b/riscv/riscv_register.cc
@@ -32,7 +32,7 @@
 using DataBuffer = generic::DataBuffer;
 
 RV32VectorSourceOperand::RV32VectorSourceOperand(
-    absl::Span<generic::RegisterBase *> reg_span, std::string op_name)
+    absl::Span<generic::RegisterBase*> reg_span, std::string op_name)
     : op_name_(op_name) {
   if (reg_span.empty()) return;
   if (reg_span[0] == nullptr) return;
@@ -58,10 +58,10 @@
 }
 
 RV32VectorSourceOperand::RV32VectorSourceOperand(
-    absl::Span<generic::RegisterBase *> reg_span)
+    absl::Span<generic::RegisterBase*> reg_span)
     : RV32VectorSourceOperand(reg_span, reg_span[0]->name()) {}
 
-RV32VectorSourceOperand::RV32VectorSourceOperand(generic::RegisterBase *reg,
+RV32VectorSourceOperand::RV32VectorSourceOperand(generic::RegisterBase* reg,
                                                  std::string op_name)
     : op_name_(op_name) {
   if (reg == nullptr) return;
@@ -72,7 +72,7 @@
   registers_.push_back(reg);
 }
 
-RV32VectorSourceOperand::RV32VectorSourceOperand(generic::RegisterBase *reg)
+RV32VectorSourceOperand::RV32VectorSourceOperand(generic::RegisterBase* reg)
     : RV32VectorSourceOperand(reg, reg->name()) {}
 
 bool RV32VectorSourceOperand::AsBool(int i) {
@@ -130,11 +130,11 @@
   return registers_[group]->data_buffer()->Get<uint64_t>(offset);
 }
 
-RV32VectorTrueOperand::RV32VectorTrueOperand(RiscVState *state)
+RV32VectorTrueOperand::RV32VectorTrueOperand(RiscVState* state)
     : RV32VectorSourceOperand(
           state->GetRegister<RVVectorRegister>(kName).first) {
   // Ensure the value is all ones.
-  auto *reg = state->GetRegister<RVVectorRegister>(kName).first;
+  auto* reg = state->GetRegister<RVVectorRegister>(kName).first;
   auto data = reg->data_buffer()->Get<uint64_t>();
   for (int i = 0; i < data.size(); i++) {
     data[i] = std::numeric_limits<uint64_t>::max();
@@ -142,7 +142,7 @@
 }
 
 RV32VectorDestinationOperand::RV32VectorDestinationOperand(
-    absl::Span<generic::RegisterBase *> reg_span, int latency,
+    absl::Span<generic::RegisterBase*> reg_span, int latency,
     std::string op_name)
     : db_factory_(reg_span[0]->arch_state()->db_factory()),
       delay_line_(reg_span[0]->arch_state()->data_buffer_delay_line()),
@@ -172,11 +172,11 @@
 }
 
 RV32VectorDestinationOperand::RV32VectorDestinationOperand(
-    absl::Span<generic::RegisterBase *> reg_span, int latency)
+    absl::Span<generic::RegisterBase*> reg_span, int latency)
     : RV32VectorDestinationOperand(reg_span, latency, reg_span[0]->name()) {}
 
 RV32VectorDestinationOperand::RV32VectorDestinationOperand(
-    generic::RegisterBase *reg, int latency, std::string op_name)
+    generic::RegisterBase* reg, int latency, std::string op_name)
     : op_name_(op_name) {
   if (reg == nullptr) return;
 
@@ -187,18 +187,18 @@
 }
 
 RV32VectorDestinationOperand::RV32VectorDestinationOperand(
-    generic::RegisterBase *reg, int latency)
+    generic::RegisterBase* reg, int latency)
     : RV32VectorDestinationOperand(reg, latency, reg->name()) {}
 
-DataBuffer *RV32VectorDestinationOperand::AllocateDataBuffer() {
+DataBuffer* RV32VectorDestinationOperand::AllocateDataBuffer() {
   return AllocateDataBuffer(0);
 }
 
-void RV32VectorDestinationOperand::InitializeDataBuffer(DataBuffer *db) {
+void RV32VectorDestinationOperand::InitializeDataBuffer(DataBuffer* db) {
   InitializeDataBuffer(0, db);
 }
 
-DataBuffer *RV32VectorDestinationOperand::CopyDataBuffer() {
+DataBuffer* RV32VectorDestinationOperand::CopyDataBuffer() {
   return CopyDataBuffer(0);
 }
 
@@ -214,20 +214,20 @@
 
 std::string RV32VectorDestinationOperand::AsString() const { return op_name_; }
 
-DataBuffer *RV32VectorDestinationOperand::AllocateDataBuffer(int i) {
-  DataBuffer *db = db_factory_->Allocate(registers_[i]->size());
+DataBuffer* RV32VectorDestinationOperand::AllocateDataBuffer(int i) {
+  DataBuffer* db = db_factory_->Allocate(registers_[i]->size());
   InitializeDataBuffer(i, db);
   return db;
 }
 
-void RV32VectorDestinationOperand::InitializeDataBuffer(int i, DataBuffer *db) {
+void RV32VectorDestinationOperand::InitializeDataBuffer(int i, DataBuffer* db) {
   db->set_destination(registers_[i]);
   db->set_latency(latency_);
   db->set_delay_line(delay_line_);
 }
 
-DataBuffer *RV32VectorDestinationOperand::CopyDataBuffer(int i) {
-  DataBuffer *db = db_factory_->MakeCopyOf(registers_[i]->data_buffer());
+DataBuffer* RV32VectorDestinationOperand::CopyDataBuffer(int i) {
+  DataBuffer* db = db_factory_->MakeCopyOf(registers_[i]->data_buffer());
   InitializeDataBuffer(i, db);
   return db;
 }
diff --git a/riscv/riscv_register.h b/riscv/riscv_register.h
index ad3f5b0..1048b19 100644
--- a/riscv/riscv_register.h
+++ b/riscv/riscv_register.h
@@ -54,12 +54,11 @@
 
 class RV32VectorSourceOperand : public generic::SourceOperandInterface {
  public:
-  RV32VectorSourceOperand(absl::Span<generic::RegisterBase *> reg_span,
+  RV32VectorSourceOperand(absl::Span<generic::RegisterBase*> reg_span,
                           std::string op_name);
-  explicit RV32VectorSourceOperand(
-      absl::Span<generic::RegisterBase *> reg_span);
-  explicit RV32VectorSourceOperand(generic::RegisterBase *reg);
-  RV32VectorSourceOperand(generic::RegisterBase *reg, std::string op_name);
+  explicit RV32VectorSourceOperand(absl::Span<generic::RegisterBase*> reg_span);
+  explicit RV32VectorSourceOperand(generic::RegisterBase* reg);
+  RV32VectorSourceOperand(generic::RegisterBase* reg, std::string op_name);
 
   RV32VectorSourceOperand() = delete;
   bool AsBool(int i) override;
@@ -74,7 +73,7 @@
   // Returns the RegisterBase object wrapped in absl::any.
   std::any GetObject() const override { return std::any(registers_[0]); }
   // Non-inherited method to get the register object.
-  generic::RegisterBase *GetRegister(int i) const { return registers_[i]; }
+  generic::RegisterBase* GetRegister(int i) const { return registers_[i]; }
   // Returns the shape of the register.
   std::vector<int> shape() const override { return registers_[0]->shape(); }
   std::string AsString() const override { return registers_[0]->name(); }
@@ -86,13 +85,13 @@
   int group_size_ = 0;
   int vector_size_ = 0;
   int vector_byte_size_ = 0;
-  std::vector<generic::RegisterBase *> registers_;
+  std::vector<generic::RegisterBase*> registers_;
   std::string op_name_;
 };
 
 class RV32VectorTrueOperand : public RV32VectorSourceOperand {
  public:
-  explicit RV32VectorTrueOperand(RiscVState *state);
+  explicit RV32VectorTrueOperand(RiscVState* state);
 
   RV32VectorTrueOperand() = delete;
   bool AsBool(int) final { return true; }
@@ -113,41 +112,41 @@
 class RV32VectorDestinationOperand
     : public generic::DestinationOperandInterface {
  public:
-  RV32VectorDestinationOperand(absl::Span<generic::RegisterBase *> reg_span,
+  RV32VectorDestinationOperand(absl::Span<generic::RegisterBase*> reg_span,
                                int latency, std::string op_name);
-  RV32VectorDestinationOperand(absl::Span<generic::RegisterBase *> reg_span,
+  RV32VectorDestinationOperand(absl::Span<generic::RegisterBase*> reg_span,
                                int latency);
-  RV32VectorDestinationOperand(generic::RegisterBase *reg, int latency,
+  RV32VectorDestinationOperand(generic::RegisterBase* reg, int latency,
                                std::string op_name);
-  RV32VectorDestinationOperand(generic::RegisterBase *reg, int latency);
-  generic::DataBuffer *AllocateDataBuffer() override;
-  void InitializeDataBuffer(generic::DataBuffer *db) override;
-  generic::DataBuffer *CopyDataBuffer() override;
+  RV32VectorDestinationOperand(generic::RegisterBase* reg, int latency);
+  generic::DataBuffer* AllocateDataBuffer() override;
+  void InitializeDataBuffer(generic::DataBuffer* db) override;
+  generic::DataBuffer* CopyDataBuffer() override;
   int latency() const override;
   std::any GetObject() const override;
   std::vector<int> shape() const override;
   std::string AsString() const override;
   // New method.
-  generic::DataBuffer *AllocateDataBuffer(int i);
-  void InitializeDataBuffer(int i, generic::DataBuffer *db);
-  generic::DataBuffer *CopyDataBuffer(int i);
+  generic::DataBuffer* AllocateDataBuffer(int i);
+  void InitializeDataBuffer(int i, generic::DataBuffer* db);
+  generic::DataBuffer* CopyDataBuffer(int i);
   std::any GetObject(int i) const;
   int size() const { return registers_.size(); }
 
  private:
-  generic::DataBufferFactory *db_factory_;
-  generic::DataBufferDelayLine *delay_line_;
+  generic::DataBufferFactory* db_factory_;
+  generic::DataBufferDelayLine* delay_line_;
   int latency_ = 0;
   int group_size_ = 0;
   int vector_size_ = 0;
   int vector_byte_size_ = 0;
-  std::vector<generic::RegisterBase *> registers_;
+  std::vector<generic::RegisterBase*> registers_;
   std::string op_name_;
 };
 
 using RVVectorRegister =
-    generic::StateItem<generic::RegisterBase, uint8_t *,
-                       RV32VectorSourceOperand, RV32VectorDestinationOperand>;
+    generic::StateItem<generic::RegisterBase, uint8_t*, RV32VectorSourceOperand,
+                       RV32VectorDestinationOperand>;
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_renode.cc b/riscv/riscv_renode.cc
index 148845a..df72f6e 100644
--- a/riscv/riscv_renode.cc
+++ b/riscv/riscv_renode.cc
@@ -89,19 +89,19 @@
 constexpr char kStackEndSymbolName[] = "__stack_end";
 constexpr char kStackSizeSymbolName[] = "__stack_size";
 
-RiscVRenode::RiscVRenode(std::string name, MemoryInterface *renode_sysbus,
+RiscVRenode::RiscVRenode(std::string name, MemoryInterface* renode_sysbus,
                          RiscVXlen xlen)
     : name_(name), renode_sysbus_(renode_sysbus) {
   router_ = new util::SingleInitiatorRouter(name + "_router");
   renode_router_ = new util::SingleInitiatorRouter(name + "_renode_router");
-  auto *data_memory = static_cast<MemoryInterface *>(router_);
+  auto* data_memory = static_cast<MemoryInterface*>(router_);
   // Instantiate memory profiler, but disable it until the config information
   // has been received.
   mem_profiler_ = new MemoryUseProfiler(data_memory);
   mem_profiler_->set_is_enabled(false);
   // Set up state, decoder, and top.
   rv_state_ = new RiscVState("RiscVRenode", xlen, mem_profiler_,
-                             static_cast<AtomicMemoryOpInterface *>(router_));
+                             static_cast<AtomicMemoryOpInterface*>(router_));
   rv_fp_state_ = new RiscVFPState(rv_state_->csr_set(), rv_state_);
   rv_state_->set_rv_fp(rv_fp_state_);
   std::string reg_name;
@@ -154,7 +154,7 @@
                                        : RiscVArmSemihost::BitWidth::kWord64,
                                    data_memory, data_memory);
   // Set up special handlers (ebreak, wfi, ecall).
-  riscv_top_->state()->AddEbreakHandler([this](const Instruction *inst) {
+  riscv_top_->state()->AddEbreakHandler([this](const Instruction* inst) {
     if (this->semihost_->IsSemihostingCall(inst)) {
       this->semihost_->OnEBreak(inst);
       return true;
@@ -165,8 +165,8 @@
     }
     return false;
   });
-  riscv_top_->state()->set_on_wfi([](const Instruction *) { return true; });
-  riscv_top_->state()->set_on_ecall([](const Instruction *) { return false; });
+  riscv_top_->state()->set_on_wfi([](const Instruction*) { return true; });
+  riscv_top_->state()->set_on_ecall([](const Instruction*) { return false; });
   semihost_->set_exit_callback([this]() {
     LOG(INFO) << "Simulation halting due to semihosting exit";
     this->riscv_top_->RequestHalt(HaltReason::kProgramDone, nullptr);
@@ -211,8 +211,8 @@
   std::string serialized;
   if (!proto_file.good()) {
     LOG(ERROR) << "Failed to open proto file for writing";
-  } else if (!google::protobuf::TextFormat::PrintToString(
-                 *component_proto.get(), &serialized)) {
+  } else if (!google::protobuf::TextFormat::PrintToString(*component_proto,
+                                                          &serialized)) {
     LOG(ERROR) << "Failed to serialize protos";
   } else {
     proto_file << serialized;
@@ -239,7 +239,7 @@
   delete clint_;
 }
 
-absl::StatusOr<uint64_t> RiscVRenode::LoadExecutable(const char *elf_file_name,
+absl::StatusOr<uint64_t> RiscVRenode::LoadExecutable(const char* elf_file_name,
                                                      bool for_symbols_only) {
   program_loader_ = new ElfProgramLoader(this);
   uint64_t entry_pt = 0;
@@ -264,12 +264,12 @@
     uint64_t tohost_addr = res.value().first;
     // Add to_host watchpoint that halts the execution when program exit is
     // signaled.
-    auto *db = riscv_top_->state()->db_factory()->Allocate<uint32_t>(2);
+    auto* db = riscv_top_->state()->db_factory()->Allocate<uint32_t>(2);
     auto status = riscv_top_->memory_watcher()->SetStoreWatchCallback(
         MemoryWatcher::AddressRange{tohost_addr,
                                     tohost_addr + 2 * sizeof(uint32_t) - 1},
         [this, tohost_addr, db](uint64_t addr, int sz) {
-          static DataBuffer *load_db = db;
+          static DataBuffer* load_db = db;
           if (load_db == nullptr) return;
           memory_->Load(tohost_addr, load_db, nullptr, nullptr);
           uint32_t code = load_db->Get<uint32_t>(0);
@@ -317,9 +317,9 @@
 
 // Perform direct read of the memory through the renode router. The renode
 // router avoids routing the request back out to the sysbus.
-absl::StatusOr<size_t> RiscVRenode::ReadMemory(uint64_t address, void *buf,
+absl::StatusOr<size_t> RiscVRenode::ReadMemory(uint64_t address, void* buf,
                                                size_t length) {
-  auto *db = db_factory_.Allocate<uint8_t>(length);
+  auto* db = db_factory_.Allocate<uint8_t>(length);
   renode_router_->Load(address, db, nullptr, nullptr);
   std::memcpy(buf, db->raw_ptr(), length);
   db->DecRef();
@@ -329,9 +329,9 @@
 // Perform direct write of the memory through the renode router. The renode
 // router avoids routing the request back out to the sysbus.
 absl::StatusOr<size_t> RiscVRenode::WriteMemory(uint64_t address,
-                                                const void *buf,
+                                                const void* buf,
                                                 size_t length) {
-  auto *db = db_factory_.Allocate<uint8_t>(length);
+  auto* db = db_factory_.Allocate<uint8_t>(length);
   std::memcpy(db->raw_ptr(), buf, length);
   renode_router_->Store(address, db);
   db->DecRef();
@@ -365,15 +365,15 @@
 }
 
 absl::Status RiscVRenode::GetRenodeRegisterInfo(int32_t index, int32_t max_len,
-                                                char *name,
-                                                RenodeCpuRegister &info) {
-  auto const &register_info = RiscVRenodeRegisterInfo::GetRenodeRegisterInfo();
+                                                char* name,
+                                                RenodeCpuRegister& info) {
+  auto const& register_info = RiscVRenodeRegisterInfo::GetRenodeRegisterInfo();
   if ((index < 0) || (index >= register_info.size())) {
     return absl::OutOfRangeError(
         absl::StrCat("Register info index (", index, ") out of range"));
   }
   info = register_info[index];
-  auto const &reg_map = RiscVDebugInfo::Instance()->debug_register_map();
+  auto const& reg_map = RiscVDebugInfo::Instance()->debug_register_map();
   auto ptr = reg_map.find(info.index);
   if (ptr == reg_map.end()) {
     name[0] = '\0';
@@ -383,7 +383,7 @@
   return absl::OkStatus();
 }
 
-static absl::StatusOr<uint64_t> ParseNumber(const std::string &number) {
+static absl::StatusOr<uint64_t> ParseNumber(const std::string& number) {
   if (number.empty()) {
     return absl::InvalidArgumentError("Empty number");
   }
@@ -402,8 +402,8 @@
   return res.value();
 }
 
-absl::Status RiscVRenode::SetConfig(const char *config_names[],
-                                    const char *config_values[], int size) {
+absl::Status RiscVRenode::SetConfig(const char* config_names[],
+                                    const char* config_values[], int size) {
   std::string icache_cfg;
   std::string dcache_cfg;
   uint64_t memory_base = 0;
@@ -494,7 +494,7 @@
     instrumentation_control_ =
         new RiscVInstrumentationControl(cmd_shell_, riscv_top_, mem_profiler_);
     cmd_shell_->AddCore(
-        {static_cast<RiscVDebugInterface *>(riscv_cli_forwarder_),
+        {static_cast<RiscVDebugInterface*>(riscv_cli_forwarder_),
          [this]() { return program_loader_; }});
     cmd_shell_->AddCommand(
         instrumentation_control_->Usage(),
@@ -552,7 +552,7 @@
     ComponentValueEntry icache_value;
     icache_value.set_name("icache");
     icache_value.set_string_value(icache_cfg);
-    auto *cfg = riscv_top_->GetConfig("icache");
+    auto* cfg = riscv_top_->GetConfig("icache");
     auto status = cfg->Import(&icache_value);
     if (!status.ok()) return status;
   }
@@ -560,11 +560,11 @@
     ComponentValueEntry dcache_value;
     dcache_value.set_name("dcache");
     dcache_value.set_string_value(dcache_cfg);
-    auto *cfg = riscv_top_->GetConfig("dcache");
+    auto* cfg = riscv_top_->GetConfig("dcache");
     auto status = cfg->Import(&dcache_value);
     if (!status.ok()) return status;
     // Hook the cache into the memory port.
-    auto *dcache = riscv_top_->dcache();
+    auto* dcache = riscv_top_->dcache();
     dcache->set_memory(riscv_top_->state()->memory());
     riscv_top_->state()->set_memory(dcache);
   }
diff --git a/riscv/riscv_renode.h b/riscv/riscv_renode.h
index 2f1fc73..4f02f57 100644
--- a/riscv/riscv_renode.h
+++ b/riscv/riscv_renode.h
@@ -97,10 +97,10 @@
 
   // Constructor takes a name and a memory interface that is used for memory
   // transactions routed to the system bus.
-  RiscVRenode(std::string name, MemoryInterface *renode_sysbus, RiscVXlen xlen);
+  RiscVRenode(std::string name, MemoryInterface* renode_sysbus, RiscVXlen xlen);
   ~RiscVRenode() override;
 
-  absl::StatusOr<uint64_t> LoadExecutable(const char *elf_file_name,
+  absl::StatusOr<uint64_t> LoadExecutable(const char* elf_file_name,
                                           bool for_symbols_only) override;
   // Step the core by num instructions.
   absl::StatusOr<int> Step(int num) override;
@@ -111,18 +111,18 @@
   absl::Status WriteRegister(uint32_t reg_id, uint64_t value) override;
   // Get register data buffer call. Not implemented, stubbed out to return null.
   // Read/write the buffers to memory.
-  absl::StatusOr<size_t> ReadMemory(uint64_t address, void *buf,
+  absl::StatusOr<size_t> ReadMemory(uint64_t address, void* buf,
                                     size_t length) override;
-  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void *buf,
+  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void* buf,
                                      size_t length) override;
   // Return register information.
   int32_t GetRenodeRegisterInfoSize() const override;
-  absl::Status GetRenodeRegisterInfo(int32_t index, int32_t max_len, char *name,
-                                     RenodeCpuRegister &info) override;
+  absl::Status GetRenodeRegisterInfo(int32_t index, int32_t max_len, char* name,
+                                     RenodeCpuRegister& info) override;
 
   // Set configuration value.
-  absl::Status SetConfig(const char *config_names[],
-                         const char *config_values[], int size) override;
+  absl::Status SetConfig(const char* config_names[],
+                         const char* config_values[], int size) override;
 
   // Set IRQ value for supported IRQs. Supported irq_nums are:
   //          MachineSoftwareInterrupt = 0x3
@@ -133,26 +133,26 @@
 
  private:
   std::string name_;
-  MemoryInterface *renode_sysbus_ = nullptr;
-  RiscVState *rv_state_ = nullptr;
-  RiscVFPState *rv_fp_state_ = nullptr;
-  generic::DecoderInterface *rv_decoder_ = nullptr;
-  RiscVTop *riscv_top_ = nullptr;
-  RiscVArmSemihost *semihost_ = nullptr;
-  SingleInitiatorRouter *router_ = nullptr;
-  SingleInitiatorRouter *renode_router_ = nullptr;
+  MemoryInterface* renode_sysbus_ = nullptr;
+  RiscVState* rv_state_ = nullptr;
+  RiscVFPState* rv_fp_state_ = nullptr;
+  generic::DecoderInterface* rv_decoder_ = nullptr;
+  RiscVTop* riscv_top_ = nullptr;
+  RiscVArmSemihost* semihost_ = nullptr;
+  SingleInitiatorRouter* router_ = nullptr;
+  SingleInitiatorRouter* renode_router_ = nullptr;
   DataBufferFactory db_factory_;
-  AtomicMemory *atomic_memory_ = nullptr;
-  FlatDemandMemory *memory_ = nullptr;
-  RiscVClint *clint_ = nullptr;
-  SocketCLI *socket_cli_ = nullptr;
-  RiscVRenodeCLITop *riscv_renode_cli_top_ = nullptr;
-  RiscVCLIForwarder *riscv_cli_forwarder_ = nullptr;
-  ElfProgramLoader *program_loader_ = nullptr;
-  DebugCommandShell *cmd_shell_ = nullptr;
-  InstructionProfiler *inst_profiler_ = nullptr;
-  MemoryUseProfiler *mem_profiler_ = nullptr;
-  RiscVInstrumentationControl *instrumentation_control_ = nullptr;
+  AtomicMemory* atomic_memory_ = nullptr;
+  FlatDemandMemory* memory_ = nullptr;
+  RiscVClint* clint_ = nullptr;
+  SocketCLI* socket_cli_ = nullptr;
+  RiscVRenodeCLITop* riscv_renode_cli_top_ = nullptr;
+  RiscVCLIForwarder* riscv_cli_forwarder_ = nullptr;
+  ElfProgramLoader* program_loader_ = nullptr;
+  DebugCommandShell* cmd_shell_ = nullptr;
+  InstructionProfiler* inst_profiler_ = nullptr;
+  MemoryUseProfiler* mem_profiler_ = nullptr;
+  RiscVInstrumentationControl* instrumentation_control_ = nullptr;
   uint64_t stack_size_ = 32 * 1024;
   uint64_t stack_end_ = 0;
 };
diff --git a/riscv/riscv_renode_cli_top.cc b/riscv/riscv_renode_cli_top.cc
index 3015750..5d9fc4b 100644
--- a/riscv/riscv_renode_cli_top.cc
+++ b/riscv/riscv_renode_cli_top.cc
@@ -31,7 +31,7 @@
 namespace sim {
 namespace riscv {
 
-RiscVRenodeCLITop::RiscVRenodeCLITop(RiscVTop *riscv_top, bool wait_for_cli)
+RiscVRenodeCLITop::RiscVRenodeCLITop(RiscVTop* riscv_top, bool wait_for_cli)
     : util::renode::RenodeCLITop(riscv_top, wait_for_cli),
       riscv_top_(riscv_top) {}
 
diff --git a/riscv/riscv_renode_cli_top.h b/riscv/riscv_renode_cli_top.h
index 4f0fc93..4e42724 100644
--- a/riscv/riscv_renode_cli_top.h
+++ b/riscv/riscv_renode_cli_top.h
@@ -35,7 +35,7 @@
 // CherIoT CLI.
 class RiscVRenodeCLITop : public util::renode::RenodeCLITop {
  public:
-  RiscVRenodeCLITop(RiscVTop *riscv_top, bool wait_for_cli);
+  RiscVRenodeCLITop(RiscVTop* riscv_top, bool wait_for_cli);
 
   absl::Status CLISetDataWatchpoint(uint64_t address, size_t length,
                                     AccessType access_type);
@@ -48,7 +48,7 @@
   absl::Status CLIDisableAction(uint64_t address, int id);
 
  private:
-  RiscVTop *riscv_top_ = nullptr;
+  RiscVTop* riscv_top_ = nullptr;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv_renode_register_info.cc b/riscv/riscv_renode_register_info.cc
index 49316f1..c4b9a9f 100644
--- a/riscv/riscv_renode_register_info.cc
+++ b/riscv/riscv_renode_register_info.cc
@@ -23,7 +23,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT - used below.
 
-RiscVRenodeRegisterInfo *RiscVRenodeRegisterInfo::instance_ = nullptr;
+RiscVRenodeRegisterInfo* RiscVRenodeRegisterInfo::instance_ = nullptr;
 
 void RiscVRenodeRegisterInfo::InitializeRenodeRegisterInfo() {
   using DbgReg = DebugRegisterEnum;
@@ -69,19 +69,19 @@
   InitializeRenodeRegisterInfo();
 }
 
-const RiscVRenodeRegisterInfo::RenodeRegisterInfo &
+const RiscVRenodeRegisterInfo::RenodeRegisterInfo&
 RiscVRenodeRegisterInfo::GetRenodeRegisterInfo() {
   return Instance()->GetRenodeRegisterInfoPrivate();
 }
 
-RiscVRenodeRegisterInfo *RiscVRenodeRegisterInfo::Instance() {
+RiscVRenodeRegisterInfo* RiscVRenodeRegisterInfo::Instance() {
   if (instance_ == nullptr) {
     instance_ = new RiscVRenodeRegisterInfo();
   }
   return instance_;
 }
 
-const RiscVRenodeRegisterInfo::RenodeRegisterInfo &
+const RiscVRenodeRegisterInfo::RenodeRegisterInfo&
 RiscVRenodeRegisterInfo::GetRenodeRegisterInfoPrivate() {
   return renode_register_info_;
 }
diff --git a/riscv/riscv_renode_register_info.h b/riscv/riscv_renode_register_info.h
index ab554d8..6e50532 100644
--- a/riscv/riscv_renode_register_info.h
+++ b/riscv/riscv_renode_register_info.h
@@ -32,15 +32,15 @@
  public:
   using RenodeRegisterInfo = std::vector<util::renode::RenodeCpuRegister>;
 
-  static const RenodeRegisterInfo &GetRenodeRegisterInfo();
+  static const RenodeRegisterInfo& GetRenodeRegisterInfo();
 
  private:
   RiscVRenodeRegisterInfo();
-  static RiscVRenodeRegisterInfo *Instance();
+  static RiscVRenodeRegisterInfo* Instance();
   void InitializeRenodeRegisterInfo();
-  const RenodeRegisterInfo &GetRenodeRegisterInfoPrivate();
+  const RenodeRegisterInfo& GetRenodeRegisterInfoPrivate();
 
-  static RiscVRenodeRegisterInfo *instance_;
+  static RiscVRenodeRegisterInfo* instance_;
   RenodeRegisterInfo renode_register_info_;
 };
 
diff --git a/riscv/riscv_sim_csrs.h b/riscv/riscv_sim_csrs.h
index 015ae66..9371500 100644
--- a/riscv/riscv_sim_csrs.h
+++ b/riscv/riscv_sim_csrs.h
@@ -27,7 +27,7 @@
 
 class RiscVSimModeCsr : public RiscVSimpleCsr<uint32_t> {
  public:
-  RiscVSimModeCsr(std::string name, RiscVCsrEnum index, RiscVState *state)
+  RiscVSimModeCsr(std::string name, RiscVCsrEnum index, RiscVState* state)
       : RiscVSimpleCsr<uint32_t>(name, index, 0x0, 0x3, 0x3, state),
         state_(state) {}
 
@@ -37,7 +37,7 @@
   void Set(uint64_t value) override;
 
  private:
-  RiscVState *state_;
+  RiscVState* state_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv_state.cc b/riscv/riscv_state.cc
index 8d71bad..0553d46 100644
--- a/riscv/riscv_state.cc
+++ b/riscv/riscv_state.cc
@@ -104,9 +104,9 @@
 // This creates the CSR and assigns it to a pointer in the state object. Type
 // can be inferred from the state object pointer.
 template <typename T, typename... Ps>
-T *CreateCsr(RiscVState *state, T *&ptr,
-             std::vector<RiscVCsrInterface *> &csr_vec, Ps... pargs) {
-  auto *csr = new T(pargs...);
+T* CreateCsr(RiscVState* state, T*& ptr,
+             std::vector<RiscVCsrInterface*>& csr_vec, Ps... pargs) {
+  auto* csr = new T(pargs...);
   auto result = state->csr_set()->AddCsr(csr);
   if (!result.ok()) {
     LOG(ERROR) << absl::StrCat("Failed to add csr '", csr->name(),
@@ -123,9 +123,9 @@
 // that pointer is of abstract type, so the CSR type cannot be inferred, but
 // has to be specified in the call.
 template <typename T, typename... Ps>
-T *CreateCsr(RiscVState *state, RiscVCsrInterface *&ptr,
-             std::vector<RiscVCsrInterface *> &csr_vec, Ps... pargs) {
-  auto *csr = new T(pargs...);
+T* CreateCsr(RiscVState* state, RiscVCsrInterface*& ptr,
+             std::vector<RiscVCsrInterface*>& csr_vec, Ps... pargs) {
+  auto* csr = new T(pargs...);
   auto result = state->csr_set()->AddCsr(csr);
   if (!result.ok()) {
     LOG(ERROR) << absl::StrCat("Failed to add csr '", csr->name(),
@@ -142,9 +142,9 @@
 // object. That means the type cannot be inferred, but has to be specified
 // in the call.
 template <typename T, typename... Ps>
-T *CreateCsr(RiscVState *state, std::vector<RiscVCsrInterface *> &csr_vec,
+T* CreateCsr(RiscVState* state, std::vector<RiscVCsrInterface*>& csr_vec,
              Ps... pargs) {
-  auto *csr = new T(pargs...);
+  auto* csr = new T(pargs...);
   auto result = state->csr_set()->AddCsr(csr);
   if (!result.ok()) {
     LOG(ERROR) << absl::StrCat("Failed to add csr '", csr->name(),
@@ -159,7 +159,7 @@
 // Templated helper function that is used to create the set of CSRs needed
 // for simulation.
 template <typename T>
-void CreateCsrs(RiscVState *state, std::vector<RiscVCsrInterface *> &csr_vec) {
+void CreateCsrs(RiscVState* state, std::vector<RiscVCsrInterface*>& csr_vec) {
   absl::Status result;
   // Create CSRs.
 
@@ -169,7 +169,7 @@
            nullptr);
 
   // misa
-  auto *misa = CreateCsr(state, state->misa_, csr_vec,
+  auto* misa = CreateCsr(state, state->misa_, csr_vec,
                          CsrInfo<T>::kMisaInitialValue, state);
   CHECK_NE(misa, nullptr);
   // mtvec
@@ -184,11 +184,11 @@
 
   // Mip and Mie are always 32 bit.
   // mip
-  auto *mip = CreateCsr(state, state->mip_, csr_vec, 0, state);
+  auto* mip = CreateCsr(state, state->mip_, csr_vec, 0, state);
   CHECK_NE(mip, nullptr);
 
   // mie
-  auto *mie = CreateCsr(state, state->mie_, csr_vec, 0, state);
+  auto* mie = CreateCsr(state, state->mie_, csr_vec, 0, state);
   CHECK_NE(mie, nullptr);
 
   // mhartid
@@ -215,13 +215,13 @@
            nullptr);
 
   // mideleg - machine mode interrupt delegation register.
-  auto *mideleg = CreateCsr<RiscVSimpleCsr<T>>(
+  auto* mideleg = CreateCsr<RiscVSimpleCsr<T>>(
       state, state->mideleg_, csr_vec, "mideleg", RiscVCsrEnum::kMIDeleg, 0,
       CsrInfo<T>::kMIdelegRMask, CsrInfo<T>::kMIdelegWMask, state);
   CHECK_NE(mideleg, nullptr);
 
   // mstatus
-  auto *mstatus =
+  auto* mstatus =
       CreateCsr(state, state->mstatus_, csr_vec,
                 CsrInfo<uint64_t>::kMstatusInitialValue, state, misa);
   CHECK_NE(mstatus, nullptr);
@@ -231,25 +231,25 @@
            nullptr);
 
   // minstret/minstreth
-  auto *minstret = CreateCsr<RiscVCounterCsr<T, RiscVState>>(
+  auto* minstret = CreateCsr<RiscVCounterCsr<T, RiscVState>>(
       state, csr_vec, "minstret", RiscVCsrEnum ::kMInstret, state);
   CHECK_NE(minstret, nullptr);
   if (sizeof(T) == sizeof(uint32_t)) {
-    CHECK_NE(CreateCsr<RiscVCounterCsrHigh<RiscVState>>(
-                 state, csr_vec, "minstreth", RiscVCsrEnum::kMInstretH, state,
-                 reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState> *>(
-                     minstret)),
-             nullptr);
+    CHECK_NE(
+        CreateCsr<RiscVCounterCsrHigh<RiscVState>>(
+            state, csr_vec, "minstreth", RiscVCsrEnum::kMInstretH, state,
+            reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState>*>(minstret)),
+        nullptr);
   }
   // mcycle/mcycleh
-  auto *mcycle = CreateCsr<RiscVCounterCsr<T, RiscVState>>(
+  auto* mcycle = CreateCsr<RiscVCounterCsr<T, RiscVState>>(
       state, csr_vec, "mcycle", RiscVCsrEnum::kMCycle, state);
   CHECK_NE(mcycle, nullptr);
   if (sizeof(T) == sizeof(uint32_t)) {
     CHECK_NE(
         CreateCsr<RiscVCounterCsrHigh<RiscVState>>(
             state, csr_vec, "mcycleh", RiscVCsrEnum::kMCycleH, state,
-            reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState> *>(mcycle)),
+            reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState>*>(mcycle)),
         nullptr);
   }
 
@@ -329,7 +329,7 @@
   state->pmp_->CreatePmpCsrs<T, RiscVCsrEnum>(state->csr_set());
 
   // Jump base vector and control register (for Zcmt instructions).
-  auto *jvt_csr = CreateCsr<RiscVJvtCsr<T>>(state, state->jvt_, csr_vec, "jvt",
+  auto* jvt_csr = CreateCsr<RiscVJvtCsr<T>>(state, state->jvt_, csr_vec, "jvt",
                                             RiscVCsrEnum::kJvt, 0, state);
   CHECK_NE(jvt_csr, nullptr);
   state->jvt_ = jvt_csr;
@@ -348,8 +348,8 @@
 constexpr uint64_t kRiscv64MaxMemorySize = 0x00ff'ffff'ffff'ffffULL;
 
 RiscVState::RiscVState(absl::string_view id, RiscVXlen xlen,
-                       util::MemoryInterface *memory,
-                       util::AtomicMemoryOpInterface *atomic_memory)
+                       util::MemoryInterface* memory,
+                       util::AtomicMemoryOpInterface* atomic_memory)
     : ArchState(id),
       xlen_(xlen),
       memory_(memory),
@@ -359,10 +359,10 @@
       counter_interrupt_returns_("interrupt_returns", 0) {
   CHECK_OK(AddCounter(&counter_interrupt_returns_));
   CHECK_OK(AddCounter(&counter_interrupts_taken_));
-  DataBuffer *db = nullptr;
+  DataBuffer* db = nullptr;
   switch (xlen_) {
     case RiscVXlen::RV32: {
-      auto *pc32 = GetRegister<RV32Register>(kPcName).first;
+      auto* pc32 = GetRegister<RV32Register>(kPcName).first;
       pc_src_operand_ = pc32->CreateSourceOperand();
       pc_dst_operand_ = pc32->CreateDestinationOperand(0);
       pc_ = pc32;
@@ -373,7 +373,7 @@
       break;
     }
     case RiscVXlen::RV64: {
-      auto *pc64 = GetRegister<RV64Register>(kPcName).first;
+      auto* pc64 = GetRegister<RV64Register>(kPcName).first;
       pc_src_operand_ = pc64->CreateSourceOperand();
       pc_dst_operand_ = pc64->CreateDestinationOperand(0);
       pc_ = pc64;
@@ -399,7 +399,7 @@
     LOG(ERROR) << "Failed to get misa register";
     return;
   }
-  auto *misa = result.value();
+  auto* misa = result.value();
   auto misa_value = misa->AsUint32();
   if (misa_value & *IsaExtension::kSinglePrecisionFp) {
     flen_ = 32;
@@ -417,7 +417,7 @@
   delete pc_dst_operand_;
   delete csr_set_;
   delete pmp_;
-  for (auto *csr : csr_vec_) {
+  for (auto* csr : csr_vec_) {
     delete csr;
   }
   csr_vec_.clear();
@@ -438,9 +438,9 @@
   }
 }
 
-void RiscVState::LoadMemory(const Instruction *inst, uint64_t address,
-                            DataBuffer *db, Instruction *child_inst,
-                            ReferenceCount *context) {
+void RiscVState::LoadMemory(const Instruction* inst, uint64_t address,
+                            DataBuffer* db, Instruction* child_inst,
+                            ReferenceCount* context) {
   if (address > max_physical_address_) {
     Trap(/*is_interrupt*/ false, address, *ExceptionCode::kLoadAccessFault,
          inst->address(), inst);
@@ -449,9 +449,9 @@
   memory_->Load(address, db, child_inst, context);
 }
 
-void RiscVState::LoadMemory(const Instruction *inst, DataBuffer *address_db,
-                            DataBuffer *mask_db, int el_size, DataBuffer *db,
-                            Instruction *child_inst, ReferenceCount *context) {
+void RiscVState::LoadMemory(const Instruction* inst, DataBuffer* address_db,
+                            DataBuffer* mask_db, int el_size, DataBuffer* db,
+                            Instruction* child_inst, ReferenceCount* context) {
   for (auto address : address_db->Get<uint64_t>()) {
     if (address > max_physical_address_) {
       Trap(/*is_interrupt*/ false, address, *ExceptionCode::kLoadAccessFault,
@@ -462,8 +462,8 @@
   memory_->Load(address_db, mask_db, el_size, db, child_inst, context);
 }
 
-void RiscVState::StoreMemory(const Instruction *inst, uint64_t address,
-                             DataBuffer *db) {
+void RiscVState::StoreMemory(const Instruction* inst, uint64_t address,
+                             DataBuffer* db) {
   if (address > max_physical_address_) {
     Trap(/*is_interrupt*/ false, address, *ExceptionCode::kStoreAccessFault,
          inst->address(), inst);
@@ -472,8 +472,8 @@
   memory_->Store(address, db);
 }
 
-void RiscVState::StoreMemory(const Instruction *inst, DataBuffer *address_db,
-                             DataBuffer *mask_db, int el_size, DataBuffer *db) {
+void RiscVState::StoreMemory(const Instruction* inst, DataBuffer* address_db,
+                             DataBuffer* mask_db, int el_size, DataBuffer* db) {
   for (auto address : address_db->Get<uint64_t>()) {
     if (address > max_physical_address_) {
       Trap(/*is_interrupt*/ false, address, *ExceptionCode::kStoreAccessFault,
@@ -484,16 +484,16 @@
   memory_->Store(address_db, mask_db, el_size, db);
 }
 
-void RiscVState::Fence(const Instruction *inst, int fm, int predecessor,
+void RiscVState::Fence(const Instruction* inst, int fm, int predecessor,
                        int successor) {
   // TODO: Add fence operation once operations have non-zero latency.
 }
 
-void RiscVState::FenceI(const Instruction *inst) {
+void RiscVState::FenceI(const Instruction* inst) {
   // TODO: Add instruction fence operation when needed.
 }
 
-void RiscVState::ECall(const Instruction *inst) {
+void RiscVState::ECall(const Instruction* inst) {
   if (on_ecall_ != nullptr) {
     auto res = on_ecall_(inst);
     if (res) return;
@@ -523,8 +523,8 @@
   Trap(/*is_interrupt*/ false, 0, *code, epc, inst);
 }
 
-void RiscVState::EBreak(const Instruction *inst) {
-  for (auto &handler : on_ebreak_) {
+void RiscVState::EBreak(const Instruction* inst) {
+  for (auto& handler : on_ebreak_) {
     bool res = handler(inst);
     if (res) return;
   }
@@ -534,7 +534,7 @@
   Trap(/*is_interrupt=*/false, 0, 3, epc, inst);
 }
 
-void RiscVState::WFI(const Instruction *inst) {
+void RiscVState::WFI(const Instruction* inst) {
   if (on_wfi_ != nullptr) {
     bool res = on_wfi_(inst);
     if (res) return;
@@ -547,7 +547,7 @@
   LOG(INFO) << "No handler for wfi: treating as nop: " << where;
 }
 
-void RiscVState::Cease(const Instruction *inst) {
+void RiscVState::Cease(const Instruction* inst) {
   if (on_cease_ != nullptr) {
     const bool res = on_cease_(inst);
     if (res) return;
@@ -555,7 +555,7 @@
 
   // If no handler is specified, then CEASE is treated as an infinite loop.
   auto current_xlen = xlen();
-  auto *db = pc_dst_operand_->AllocateDataBuffer();
+  auto* db = pc_dst_operand_->AllocateDataBuffer();
   if (current_xlen == RiscVXlen::RV32) {
     db->SetSubmit<uint32_t>(0, static_cast<uint32_t>(inst->address()));
     set_branch(true);
@@ -575,7 +575,7 @@
 
 void RiscVState::Trap(bool is_interrupt, uint64_t trap_value,
                       uint64_t exception_code, uint64_t epc,
-                      const Instruction *inst) {
+                      const Instruction* inst) {
   if (on_trap_ != nullptr) {
     bool res = on_trap_(is_interrupt, trap_value, exception_code, epc, inst);
     if (res) return;
@@ -615,9 +615,9 @@
 
   // Based on the destination privilege mode, select the CSRs that will be
   // used.
-  RiscVCsrInterface *epc_csr = nullptr;
-  RiscVCsrInterface *cause_csr = nullptr;
-  RiscVCsrInterface *tvec_csr = nullptr;
+  RiscVCsrInterface* epc_csr = nullptr;
+  RiscVCsrInterface* cause_csr = nullptr;
+  RiscVCsrInterface* tvec_csr = nullptr;
   if (destination_mode == PrivilegeMode::kMachine) {
     epc_csr = mepc_;
     cause_csr = mcause_;
@@ -677,7 +677,7 @@
   }
 
   // Update the PC.
-  auto *db = pc_dst_operand_->AllocateDataBuffer();
+  auto* db = pc_dst_operand_->AllocateDataBuffer();
   if (current_xlen == RiscVXlen::RV32) {
     db->SetSubmit<uint32_t>(0, static_cast<uint32_t>(trap_target));
     set_branch(true);
diff --git a/riscv/riscv_state.h b/riscv/riscv_state.h
index a09c8d6..63c5aaa 100644
--- a/riscv/riscv_state.h
+++ b/riscv/riscv_state.h
@@ -120,7 +120,7 @@
 
 // A simple load context class for convenience.
 struct LoadContext : public generic::ReferenceCount {
-  explicit LoadContext(DataBuffer *vdb) : value_db(vdb) {}
+  explicit LoadContext(DataBuffer* vdb) : value_db(vdb) {}
   ~LoadContext() override {
     if (value_db != nullptr) value_db->DecRef();
   }
@@ -134,12 +134,12 @@
     generic::ReferenceCount::OnRefCountIsZero();
   }
   // Data buffers for the value loaded from memory (byte, half, word, etc.).
-  DataBuffer *value_db = nullptr;
+  DataBuffer* value_db = nullptr;
 };
 
 // Vector load context class.
 struct VectorLoadContext : public generic::ReferenceCount {
-  VectorLoadContext(DataBuffer *vdb, DataBuffer *mdb, int element_width_,
+  VectorLoadContext(DataBuffer* vdb, DataBuffer* mdb, int element_width_,
                     int vstart_, int vlength_)
       : value_db(vdb),
         mask_db(mdb),
@@ -161,9 +161,9 @@
     generic::ReferenceCount::OnRefCountIsZero();
   }
   // DataBuffer instances for the value loaded from memory.
-  DataBuffer *value_db = nullptr;
+  DataBuffer* value_db = nullptr;
   // Mask data buffer.
-  DataBuffer *mask_db = nullptr;
+  DataBuffer* mask_db = nullptr;
   // Vector element width.
   int element_width;
   // Starting element index.
@@ -181,7 +181,7 @@
 
 // Forward declare a template function defined in the .cc file.
 template <typename T>
-void CreateCsrs(RiscVState *, std::vector<RiscVCsrInterface *> &);
+void CreateCsrs(RiscVState*, std::vector<RiscVCsrInterface*>&);
 
 class RiscVFPState;
 class RiscVPmp;
@@ -191,10 +191,10 @@
 // calls and software breakpoints.
 class RiscVState : public ArchState {
  public:
-  friend void CreateCsrs<uint32_t>(RiscVState *,
-                                   std::vector<RiscVCsrInterface *> &);
-  friend void CreateCsrs<uint64_t>(RiscVState *,
-                                   std::vector<RiscVCsrInterface *> &);
+  friend void CreateCsrs<uint32_t>(RiscVState*,
+                                   std::vector<RiscVCsrInterface*>&);
+  friend void CreateCsrs<uint64_t>(RiscVState*,
+                                   std::vector<RiscVCsrInterface*>&);
 
   static constexpr char kFregPrefix[] = "f";
   static constexpr char kXregPrefix[] = "x";
@@ -204,28 +204,28 @@
   static constexpr char kPcName[] = "pc";
 
   RiscVState(absl::string_view id, RiscVXlen xlen,
-             util::MemoryInterface *memory,
-             util::AtomicMemoryOpInterface *atomic_memory);
+             util::MemoryInterface* memory,
+             util::AtomicMemoryOpInterface* atomic_memory);
   RiscVState(absl::string_view id, RiscVXlen xlen,
-             util::MemoryInterface *memory)
+             util::MemoryInterface* memory)
       : RiscVState(id, xlen, memory, nullptr) {}
   ~RiscVState() override;
 
   // Deleted Constructors and operators.
-  RiscVState(const RiscVState &) = delete;
-  RiscVState(RiscVState &&) = delete;
-  RiscVState &operator=(const RiscVState &) = delete;
-  RiscVState &operator=(RiscVState &&) = delete;
+  RiscVState(const RiscVState&) = delete;
+  RiscVState(RiscVState&&) = delete;
+  RiscVState& operator=(const RiscVState&) = delete;
+  RiscVState& operator=(RiscVState&&) = delete;
 
   // Return a pair consisting of pointer to the named register and a bool that
   // is true if the register had to be created, and false if it was found
   // in the register map (or if nullptr is returned).
   template <typename RegisterType>
-  std::pair<RegisterType *, bool> GetRegister(absl::string_view name) {
+  std::pair<RegisterType*, bool> GetRegister(absl::string_view name) {
     // If the register already exists, return a pointer to the register.
     auto ptr = registers()->find(std::string(name));
     if (ptr != registers()->end())
-      return std::make_pair(static_cast<RegisterType *>(ptr->second), false);
+      return std::make_pair(static_cast<RegisterType*>(ptr->second), false);
     // Create a new register and return a pointer to the object.
     return std::make_pair(AddRegister<RegisterType>(name), true);
   }
@@ -244,35 +244,35 @@
   }
 
   // Methods called by instruction semantic functions to load from memory.
-  void LoadMemory(const Instruction *inst, uint64_t address, DataBuffer *db,
-                  Instruction *child_inst, ReferenceCount *context);
-  void LoadMemory(const Instruction *inst, DataBuffer *address_db,
-                  DataBuffer *mask_db, int el_size, DataBuffer *db,
-                  Instruction *child_inst, ReferenceCount *context);
+  void LoadMemory(const Instruction* inst, uint64_t address, DataBuffer* db,
+                  Instruction* child_inst, ReferenceCount* context);
+  void LoadMemory(const Instruction* inst, DataBuffer* address_db,
+                  DataBuffer* mask_db, int el_size, DataBuffer* db,
+                  Instruction* child_inst, ReferenceCount* context);
   // Methods called by instruction semantic functions to store to memory.
-  void StoreMemory(const Instruction *inst, uint64_t address, DataBuffer *db);
-  void StoreMemory(const Instruction *inst, DataBuffer *address_db,
-                   DataBuffer *mask_db, int el_size, DataBuffer *db);
+  void StoreMemory(const Instruction* inst, uint64_t address, DataBuffer* db);
+  void StoreMemory(const Instruction* inst, DataBuffer* address_db,
+                   DataBuffer* mask_db, int el_size, DataBuffer* db);
   // Called by the fence instruction semantic function to signal a fence
   // operation.
-  void Fence(const Instruction *inst, int fm, int predecessor, int successor);
+  void Fence(const Instruction* inst, int fm, int predecessor, int successor);
   // Synchronize instruction and data streams.
-  void FenceI(const Instruction *inst);
+  void FenceI(const Instruction* inst);
   // System call.
-  void ECall(const Instruction *inst);
+  void ECall(const Instruction* inst);
   // Breakpoint.
-  void EBreak(const Instruction *inst);
+  void EBreak(const Instruction* inst);
   // WFI
-  void WFI(const Instruction *inst);
+  void WFI(const Instruction* inst);
   // Ceases execution on the core. This is a non-standard instruction that
   // quiesces traffic for embedded cores before halting. The core must be reset
   // to come out of this state.
-  void Cease(const Instruction *inst);
+  void Cease(const Instruction* inst);
   // Trap.
   void Trap(bool is_interrupt, uint64_t trap_value, uint64_t exception_code,
-            uint64_t epc, const Instruction *inst);
+            uint64_t epc, const Instruction* inst);
   // Add ebreak handler.
-  void AddEbreakHandler(absl::AnyInvocable<bool(const Instruction *)> handler) {
+  void AddEbreakHandler(absl::AnyInvocable<bool(const Instruction*)> handler) {
     on_ebreak_.emplace_back(std::move(handler));
   }
   // This function is called after any event that may have caused an interrupt
@@ -296,12 +296,12 @@
   }
 
   // Accessors.
-  void set_memory(util::MemoryInterface *memory) { memory_ = memory; }
-  util::MemoryInterface *memory() const { return memory_; }
-  util::AtomicMemoryOpInterface *atomic_memory() const {
+  void set_memory(util::MemoryInterface* memory) { memory_ = memory; }
+  util::MemoryInterface* memory() const { return memory_; }
+  util::AtomicMemoryOpInterface* atomic_memory() const {
     return atomic_memory_;
   }
-  void set_atomic_memory(util::AtomicMemoryOpInterface *atomic_memory) {
+  void set_atomic_memory(util::AtomicMemoryOpInterface* atomic_memory) {
     atomic_memory_ = atomic_memory;
   }
 
@@ -311,36 +311,36 @@
   // Setters for handlers for ecall, and trap. The handler returns true
   // if the instruction/event was handled, and false otherwise.
 
-  void set_on_ecall(absl::AnyInvocable<bool(const Instruction *)> callback) {
+  void set_on_ecall(absl::AnyInvocable<bool(const Instruction*)> callback) {
     on_ecall_ = std::move(callback);
   }
 
-  void set_on_wfi(absl::AnyInvocable<bool(const Instruction *)> callback) {
+  void set_on_wfi(absl::AnyInvocable<bool(const Instruction*)> callback) {
     on_wfi_ = std::move(callback);
   }
 
-  void set_on_cease(absl::AnyInvocable<bool(const Instruction *)> callback) {
+  void set_on_cease(absl::AnyInvocable<bool(const Instruction*)> callback) {
     on_cease_ = std::move(callback);
   }
 
   void set_on_trap(
       absl::AnyInvocable<bool(bool /*is_interrupt*/, uint64_t /*trap_value*/,
                               uint64_t /*exception_code*/, uint64_t /*epc*/,
-                              const Instruction *)>
+                              const Instruction*)>
           callback) {
     on_trap_ = std::move(callback);
   }
 
   int flen() const { return flen_; }
   RiscVXlen xlen() const { return xlen_; }
-  RiscVVectorState *rv_vector() const { return rv_vector_; }
-  void set_rv_vector(RiscVVectorState *value) { rv_vector_ = value; }
-  RiscVFPState *rv_fp() const { return rv_fp_; }
-  void set_rv_fp(RiscVFPState *value) { rv_fp_ = value; }
+  RiscVVectorState* rv_vector() const { return rv_vector_; }
+  void set_rv_vector(RiscVVectorState* value) { rv_vector_ = value; }
+  RiscVFPState* rv_fp() const { return rv_fp_; }
+  void set_rv_fp(RiscVFPState* value) { rv_fp_ = value; }
   void set_vector_register_width(int value) { vector_register_width_ = value; }
   int vector_register_width() const { return vector_register_width_; }
 
-  RiscVCsrSet *csr_set() const { return csr_set_; }
+  RiscVCsrSet* csr_set() const { return csr_set_; }
 
   PrivilegeMode privilege_mode() const { return privilege_mode_; }
   void set_privilege_mode(PrivilegeMode privilege_mode) {
@@ -361,49 +361,49 @@
   bool branch() const { return branch_; }
 
   // Getters for select CSRs.
-  RiscVMStatus *mstatus() const { return mstatus_; }
-  RiscVMIsa *misa() const { return misa_; }
-  RiscVMIp *mip() const { return mip_; }
-  RiscVMIe *mie() const { return mie_; }
-  RiscVCsrInterface *jvt() const { return jvt_; }
-  RiscVCsrInterface *mtvec() const { return mtvec_; }
-  RiscVCsrInterface *mepc() const { return mepc_; }
-  RiscVCsrInterface *mcause() const { return mcause_; }
-  RiscVCsrInterface *medeleg() const { return medeleg_; }
-  RiscVCsrInterface *mideleg() const { return mideleg_; }
-  RiscVSIp *sip() const { return sip_; }
-  RiscVSIe *sie() const { return sie_; }
-  RiscVCsrInterface *stvec() const { return stvec_; }
-  RiscVCsrInterface *sepc() const { return sepc_; }
-  RiscVCsrInterface *scause() const { return scause_; }
-  RiscVCsrInterface *sideleg() const { return sideleg_; }
+  RiscVMStatus* mstatus() const { return mstatus_; }
+  RiscVMIsa* misa() const { return misa_; }
+  RiscVMIp* mip() const { return mip_; }
+  RiscVMIe* mie() const { return mie_; }
+  RiscVCsrInterface* jvt() const { return jvt_; }
+  RiscVCsrInterface* mtvec() const { return mtvec_; }
+  RiscVCsrInterface* mepc() const { return mepc_; }
+  RiscVCsrInterface* mcause() const { return mcause_; }
+  RiscVCsrInterface* medeleg() const { return medeleg_; }
+  RiscVCsrInterface* mideleg() const { return mideleg_; }
+  RiscVSIp* sip() const { return sip_; }
+  RiscVSIe* sie() const { return sie_; }
+  RiscVCsrInterface* stvec() const { return stvec_; }
+  RiscVCsrInterface* sepc() const { return sepc_; }
+  RiscVCsrInterface* scause() const { return scause_; }
+  RiscVCsrInterface* sideleg() const { return sideleg_; }
 
  private:
   InterruptCode PickInterrupt(uint32_t interrupts);
   RiscVXlen xlen_;
   uint64_t max_physical_address_;
-  RiscVVectorState *rv_vector_ = nullptr;
-  RiscVFPState *rv_fp_ = nullptr;
+  RiscVVectorState* rv_vector_ = nullptr;
+  RiscVFPState* rv_fp_ = nullptr;
   // Program counter register.
-  generic::RegisterBase *pc_;
+  generic::RegisterBase* pc_;
   // Operands used to access pc values generically. Note, the pc value may read
   // as the address of the next instruction during execution of an instruction,
   // so the address of the instruction executing should be used instead.
-  generic::SourceOperandInterface *pc_src_operand_ = nullptr;
-  generic::DestinationOperandInterface *pc_dst_operand_ = nullptr;
+  generic::SourceOperandInterface* pc_src_operand_ = nullptr;
+  generic::DestinationOperandInterface* pc_dst_operand_ = nullptr;
   int vector_register_width_ = 0;
   int flen_ = 0;
-  util::MemoryInterface *memory_ = nullptr;
-  util::AtomicMemoryOpInterface *atomic_memory_ = nullptr;
-  RiscVCsrSet *csr_set_ = nullptr;
-  std::vector<absl::AnyInvocable<bool(const Instruction *)>> on_ebreak_;
-  absl::AnyInvocable<bool(const Instruction *)> on_ecall_;
+  util::MemoryInterface* memory_ = nullptr;
+  util::AtomicMemoryOpInterface* atomic_memory_ = nullptr;
+  RiscVCsrSet* csr_set_ = nullptr;
+  std::vector<absl::AnyInvocable<bool(const Instruction*)>> on_ebreak_;
+  absl::AnyInvocable<bool(const Instruction*)> on_ecall_;
   absl::AnyInvocable<bool(bool, uint64_t, uint64_t, uint64_t,
-                          const Instruction *)>
+                          const Instruction*)>
       on_trap_;
-  absl::AnyInvocable<bool(const Instruction *)> on_wfi_;
-  absl::AnyInvocable<bool(const Instruction *)> on_cease_;
-  std::vector<RiscVCsrInterface *> csr_vec_;
+  absl::AnyInvocable<bool(const Instruction*)> on_wfi_;
+  absl::AnyInvocable<bool(const Instruction*)> on_cease_;
+  std::vector<RiscVCsrInterface*> csr_vec_;
   // For interrupt handling.
   bool is_interrupt_available_ = false;
   InterruptCode available_interrupt_code_ = InterruptCode::kNone;
@@ -412,36 +412,36 @@
   // Flag set on branch instructions.
   bool branch_ = false;
   // Handles to frequently used CSRs.
-  RiscVMStatus *mstatus_ = nullptr;
-  RiscVMIsa *misa_ = nullptr;
-  RiscVMIp *mip_ = nullptr;
-  RiscVMIe *mie_ = nullptr;
-  RiscVPmp *pmp_ = nullptr;
-  RiscVCsrInterface *jvt_ = nullptr;
-  RiscVCsrInterface *mtvec_ = nullptr;
-  RiscVCsrInterface *mepc_ = nullptr;
-  RiscVCsrInterface *mcause_ = nullptr;
-  RiscVCsrInterface *medeleg_ = nullptr;
-  RiscVCsrInterface *mideleg_ = nullptr;
-  RiscVSIp *sip_ = nullptr;
-  RiscVSIe *sie_ = nullptr;
-  RiscVCsrInterface *stvec_ = nullptr;
-  RiscVCsrInterface *sepc_ = nullptr;
-  RiscVCsrInterface *scause_ = nullptr;
-  RiscVCsrInterface *sideleg_ = nullptr;
+  RiscVMStatus* mstatus_ = nullptr;
+  RiscVMIsa* misa_ = nullptr;
+  RiscVMIp* mip_ = nullptr;
+  RiscVMIe* mie_ = nullptr;
+  RiscVPmp* pmp_ = nullptr;
+  RiscVCsrInterface* jvt_ = nullptr;
+  RiscVCsrInterface* mtvec_ = nullptr;
+  RiscVCsrInterface* mepc_ = nullptr;
+  RiscVCsrInterface* mcause_ = nullptr;
+  RiscVCsrInterface* medeleg_ = nullptr;
+  RiscVCsrInterface* mideleg_ = nullptr;
+  RiscVSIp* sip_ = nullptr;
+  RiscVSIe* sie_ = nullptr;
+  RiscVCsrInterface* stvec_ = nullptr;
+  RiscVCsrInterface* sepc_ = nullptr;
+  RiscVCsrInterface* scause_ = nullptr;
+  RiscVCsrInterface* sideleg_ = nullptr;
   generic::SimpleCounter<int64_t> counter_interrupts_taken_;
   generic::SimpleCounter<int64_t> counter_interrupt_returns_;
 };
 
 // Specialization for RiscV vector registers.
 template <>
-inline std::pair<RVVectorRegister *, bool>
+inline std::pair<RVVectorRegister*, bool>
 RiscVState::GetRegister<RVVectorRegister>(absl::string_view name) {
   int vector_byte_width = vector_register_width();
   if (vector_byte_width == 0) return std::make_pair(nullptr, false);
   auto ptr = registers()->find(std::string(name));
   if (ptr != registers()->end())
-    return std::make_pair(static_cast<RVVectorRegister *>(ptr->second), false);
+    return std::make_pair(static_cast<RVVectorRegister*>(ptr->second), false);
   // Create a new register and return a pointer to the object.
   return std::make_pair(AddRegister<RVVectorRegister>(name, vector_byte_width),
                         true);
diff --git a/riscv/riscv_test_mem_watcher.cc b/riscv/riscv_test_mem_watcher.cc
index ff1c4bf..0a21504 100644
--- a/riscv/riscv_test_mem_watcher.cc
+++ b/riscv/riscv_test_mem_watcher.cc
@@ -14,7 +14,12 @@
 
 #include "riscv/riscv_test_mem_watcher.h"
 
+#include <cstdint>
+
 #include "absl/strings/str_cat.h"
+#include "mpact/sim/generic/data_buffer.h"
+#include "mpact/sim/generic/instruction.h"
+#include "mpact/sim/generic/ref_count.h"
 
 namespace mpact {
 namespace sim {
@@ -24,26 +29,26 @@
 // support for vector loads/stores will be added later as necessary, when full
 // support for RiscV vector instructions 1.0 is added to the RiscV torture test.
 
-void RiscVTestMemWatcher::Load(uint64_t address, generic::DataBuffer *db,
-                               generic::Instruction *inst,
-                               generic::ReferenceCount *context) {
+void RiscVTestMemWatcher::Load(uint64_t address, generic::DataBuffer* db,
+                               generic::Instruction* inst,
+                               generic::ReferenceCount* context) {
   absl::StrAppend(&trace_str_, " mem 0x", absl::Hex(address, absl::kZeroPad16));
   memory_->Load(address, db, inst, context);
 }
 
-void RiscVTestMemWatcher::Load(generic::DataBuffer *address_db,
-                               generic::DataBuffer *mask_db, int el_size,
-                               generic::DataBuffer *db,
-                               generic::Instruction *inst,
-                               generic::ReferenceCount *context) {
-  for (auto const &address : address_db->Get<uint64_t>()) {
+void RiscVTestMemWatcher::Load(generic::DataBuffer* address_db,
+                               generic::DataBuffer* mask_db, int el_size,
+                               generic::DataBuffer* db,
+                               generic::Instruction* inst,
+                               generic::ReferenceCount* context) {
+  for (auto const& address : address_db->Get<uint64_t>()) {
     absl::StrAppend(&trace_str_, " mem 0x",
                     absl::Hex(address, absl::kZeroPad16));
   }
   memory_->Load(address_db, mask_db, el_size, db, inst, context);
 }
 
-void RiscVTestMemWatcher::Store(uint64_t address, generic::DataBuffer *db) {
+void RiscVTestMemWatcher::Store(uint64_t address, generic::DataBuffer* db) {
   absl::StrAppend(&trace_str_, " mem 0x", absl::Hex(address, absl::kZeroPad16));
   switch (db->size<uint8_t>()) {
     case 1:
@@ -68,10 +73,10 @@
   memory_->Store(address, db);
 }
 
-void RiscVTestMemWatcher::Store(generic::DataBuffer *address_db,
-                                generic::DataBuffer *mask_db, int el_size,
-                                generic::DataBuffer *db) {
-  for (auto const &address : address_db->Get<uint64_t>()) {
+void RiscVTestMemWatcher::Store(generic::DataBuffer* address_db,
+                                generic::DataBuffer* mask_db, int el_size,
+                                generic::DataBuffer* db) {
+  for (auto const& address : address_db->Get<uint64_t>()) {
     absl::StrAppend(&trace_str_, " mem 0x",
                     absl::Hex(address, absl::kZeroPad16));
     switch (el_size) {
diff --git a/riscv/riscv_test_mem_watcher.h b/riscv/riscv_test_mem_watcher.h
index 5d73dc1..e106ef3 100644
--- a/riscv/riscv_test_mem_watcher.h
+++ b/riscv/riscv_test_mem_watcher.h
@@ -15,8 +15,12 @@
 #ifndef MPACT_RISCV_RISCV_RISCV_TEST_MEM_WATCHER_H_
 #define MPACT_RISCV_RISCV_RISCV_TEST_MEM_WATCHER_H_
 
+#include <cstdint>
 #include <string>
 
+#include "mpact/sim/generic/data_buffer.h"
+#include "mpact/sim/generic/instruction.h"
+#include "mpact/sim/generic/ref_count.h"
 #include "mpact/sim/util/memory/memory_interface.h"
 
 namespace mpact {
@@ -34,24 +38,24 @@
 
 class RiscVTestMemWatcher : public util::MemoryInterface {
  public:
-  explicit RiscVTestMemWatcher(util::MemoryInterface *memory)
+  explicit RiscVTestMemWatcher(util::MemoryInterface* memory)
       : memory_(memory) {}
 
-  void Load(uint64_t address, generic::DataBuffer *db,
-            generic::Instruction *inst,
-            generic::ReferenceCount *context) override;
-  void Load(generic::DataBuffer *address_db, generic::DataBuffer *mask_db,
-            int el_size, generic::DataBuffer *db, generic::Instruction *inst,
-            generic::ReferenceCount *context) override;
-  void Store(uint64_t address, generic::DataBuffer *db) override;
-  void Store(generic::DataBuffer *address_db, generic::DataBuffer *mask_db,
-             int el_size, generic::DataBuffer *db) override;
+  void Load(uint64_t address, generic::DataBuffer* db,
+            generic::Instruction* inst,
+            generic::ReferenceCount* context) override;
+  void Load(generic::DataBuffer* address_db, generic::DataBuffer* mask_db,
+            int el_size, generic::DataBuffer* db, generic::Instruction* inst,
+            generic::ReferenceCount* context) override;
+  void Store(uint64_t address, generic::DataBuffer* db) override;
+  void Store(generic::DataBuffer* address_db, generic::DataBuffer* mask_db,
+             int el_size, generic::DataBuffer* db) override;
 
-  const std::string &trace_str() const { return trace_str_; }
+  const std::string& trace_str() const { return trace_str_; }
   void clear_trace_str() { trace_str_.clear(); }
 
  private:
-  util::MemoryInterface *memory_;
+  util::MemoryInterface* memory_;
   std::string trace_str_;
 };
 
diff --git a/riscv/riscv_top.cc b/riscv/riscv_top.cc
index 83ffb8e..1f96b13 100644
--- a/riscv/riscv_top.cc
+++ b/riscv/riscv_top.cc
@@ -60,7 +60,7 @@
 using ::mpact::sim::generic::BreakpointManager;
 
 // Local helper function used to execute instructions.
-static inline bool ExecuteInstruction(Instruction *inst) {
+static inline bool ExecuteInstruction(Instruction* inst) {
   // The following code can be used to model stalls due to latency of operand
   // writes that are used by subsequent instructions. Instruction latencies
   // are defined in the .isa file.
@@ -81,8 +81,8 @@
   return true;
 }
 
-RiscVTop::RiscVTop(std::string name, RiscVState *state,
-                   generic::DecoderInterface *decoder)
+RiscVTop::RiscVTop(std::string name, RiscVState* state,
+                   generic::DecoderInterface* decoder)
     : Component(name),
       state_(state),
       rv_decoder_(decoder),
@@ -149,32 +149,32 @@
   CHECK_OK(csr_res.status()) << "Failed to get minstret CSR";
   if (state_->xlen() == RiscVXlen::RV32) {
     // Minstret/minstreth.
-    auto *minstret = reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState> *>(
+    auto* minstret = reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState>*>(
         csr_res.value());
     minstret->set_counter(&counter_num_instructions_);
     csr_res = state_->csr_set()->GetCsr("minstreth");
     CHECK_OK(csr_res.status()) << "Failed to get minstret CSR";
-    auto *minstreth =
-        reinterpret_cast<RiscVCounterCsrHigh<RiscVState> *>(csr_res.value());
+    auto* minstreth =
+        reinterpret_cast<RiscVCounterCsrHigh<RiscVState>*>(csr_res.value());
     minstreth->set_counter(&counter_num_instructions_);
     // Mcycle/mcycleh.
     csr_res = state_->csr_set()->GetCsr("mcycle");
     CHECK_OK(csr_res.status()) << "Failed to get mcycle CSR";
-    auto *mcycle = reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState> *>(
+    auto* mcycle = reinterpret_cast<RiscVCounterCsr<uint32_t, RiscVState>*>(
         csr_res.value());
     mcycle->set_counter(&counter_num_cycles_);
     csr_res = state_->csr_set()->GetCsr("mcycleh");
     CHECK_OK(csr_res.status()) << "Failed to get mcycleh CSR";
-    auto *mcycleh =
-        reinterpret_cast<RiscVCounterCsrHigh<RiscVState> *>(csr_res.value());
+    auto* mcycleh =
+        reinterpret_cast<RiscVCounterCsrHigh<RiscVState>*>(csr_res.value());
     mcycleh->set_counter(&counter_num_cycles_);
   } else {
     // Minstret/minstreth.
-    auto *minstret = reinterpret_cast<RiscVCounterCsr<uint64_t, RiscVState> *>(
+    auto* minstret = reinterpret_cast<RiscVCounterCsr<uint64_t, RiscVState>*>(
         csr_res.value());
     minstret->set_counter(&counter_num_instructions_);
     // Mcycle/mcycleh.
-    auto *mcycle = reinterpret_cast<RiscVCounterCsr<uint64_t, RiscVState> *>(
+    auto* mcycle = reinterpret_cast<RiscVCounterCsr<uint64_t, RiscVState>*>(
         csr_res.value());
     mcycle->set_counter(&counter_num_cycles_);
   }
@@ -190,7 +190,7 @@
       [this]() { RequestHalt(HaltReason::kSoftwareBreakpoint, nullptr); });
 
   // Set the ebreak handler callback.
-  state_->AddEbreakHandler([this](const Instruction *inst) {
+  state_->AddEbreakHandler([this](const Instruction* inst) {
     if (rv_action_point_manager_->IsActionPointActive(inst->address())) {
       // Need to request a halt so that the action point can be stepped past
       // after executing the actions. However, an action may override the
@@ -205,13 +205,13 @@
   // Branch trace.
   branch_trace_db_ = db_factory_.Allocate<BranchTraceEntry>(kBranchTraceSize);
   branch_trace_ =
-      reinterpret_cast<BranchTraceEntry *>(branch_trace_db_->raw_ptr());
+      reinterpret_cast<BranchTraceEntry*>(branch_trace_db_->raw_ptr());
   for (int i = 0; i < kBranchTraceSize; i++) {
     branch_trace_[i] = {0, 0, 0};
   }
 }
 
-void RiscVTop::ConfigureCache(Cache *&cache, Config<std::string> &config) {
+void RiscVTop::ConfigureCache(Cache*& cache, Config<std::string>& config) {
   if (cache != nullptr) {
     LOG(WARNING) << "Cache already configured - ignored";
     return;
@@ -322,7 +322,7 @@
   pc = next_pc;
   while (!halted_ && (count < num)) {
     SetPc(pc);
-    auto *inst = rv_decode_cache_->GetDecodedInstruction(pc);
+    auto* inst = rv_decode_cache_->GetDecodedInstruction(pc);
     // Set the next_pc to the next sequential instruction.
     next_pc = pc + inst->size();
     bool executed = false;
@@ -416,7 +416,7 @@
     // the most recently executed instruction.
     uint64_t pc = next_pc;
     while (!halted_) {
-      auto *inst = rv_decode_cache_->GetDecodedInstruction(pc);
+      auto* inst = rv_decode_cache_->GetDecodedInstruction(pc);
       SetPc(pc);
       next_pc = pc + inst->size();
       bool executed = false;
@@ -506,7 +506,7 @@
   return halt_reason_;
 }
 
-absl::StatusOr<uint64_t> RiscVTop::ReadRegister(const std::string &name) {
+absl::StatusOr<uint64_t> RiscVTop::ReadRegister(const std::string& name) {
   auto iter = state_->registers()->find(name);
 
   // Was the register found? If not try CSRs.
@@ -519,7 +519,7 @@
       return absl::NotFoundError(
           absl::StrCat("Register '", name, "' not found"));
     }
-    auto *csr = *result;
+    auto* csr = *result;
     auto xlen = state_->xlen();
     switch (xlen) {
       case RiscVXlen::RV32:
@@ -531,7 +531,7 @@
     }
   }
 
-  auto *db = (iter->second)->data_buffer();
+  auto* db = (iter->second)->data_buffer();
   uint64_t value;
   switch (db->size<uint8_t>()) {
     case 1:
@@ -552,7 +552,7 @@
   return value;
 }
 
-absl::Status RiscVTop::WriteRegister(const std::string &name, uint64_t value) {
+absl::Status RiscVTop::WriteRegister(const std::string& name, uint64_t value) {
   // The registers aren't protected by a mutex, so let's not write them while
   // the simulator is running.
   if (run_status_ != RunStatus::kHalted) {
@@ -569,7 +569,7 @@
       return absl::NotFoundError(
           absl::StrCat("Register '", name, "' not found"));
     }
-    auto *csr = *result;
+    auto* csr = *result;
     auto xlen = state_->xlen();
     switch (xlen) {
       case RiscVXlen::RV32:
@@ -589,7 +589,7 @@
     halt_reason_ = *HaltReason::kNone;
   }
 
-  auto *db = (iter->second)->data_buffer();
+  auto* db = (iter->second)->data_buffer();
   switch (db->size<uint8_t>()) {
     case 1:
       db->Set<uint8_t>(0, static_cast<uint8_t>(value));
@@ -609,8 +609,8 @@
   return absl::OkStatus();
 }
 
-absl::StatusOr<DataBuffer *> RiscVTop::GetRegisterDataBuffer(
-    const std::string &name) {
+absl::StatusOr<DataBuffer*> RiscVTop::GetRegisterDataBuffer(
+    const std::string& name) {
   // The registers aren't protected by a mutex, so let's not access them while
   // the simulator is running.
   if (run_status_ != RunStatus::kHalted) {
@@ -625,7 +625,7 @@
   return iter->second->data_buffer();
 }
 
-absl::StatusOr<size_t> RiscVTop::ReadMemory(uint64_t address, void *buffer,
+absl::StatusOr<size_t> RiscVTop::ReadMemory(uint64_t address, void* buffer,
                                             size_t length) {
   if (run_status_ != RunStatus::kHalted) {
     return absl::FailedPreconditionError("ReadMemory: Core must be halted");
@@ -635,7 +635,7 @@
   }
   uint64_t length64 = static_cast<uint64_t>(length);
   length = std::min(length64, state_->max_physical_address() - address + 1);
-  auto *db = db_factory_.Allocate(length);
+  auto* db = db_factory_.Allocate(length);
   // Load bypassing any watch points/semihosting.
   state_->memory()->Load(address, db, nullptr, nullptr);
   std::memcpy(buffer, db->raw_ptr(), length);
@@ -644,7 +644,7 @@
 }
 
 absl::StatusOr<size_t> RiscVTop::WriteMemory(uint64_t address,
-                                             const void *buffer,
+                                             const void* buffer,
                                              size_t length) {
   if (run_status_ != RunStatus::kHalted) {
     return absl::FailedPreconditionError("WriteMemory: Core must be halted");
@@ -654,7 +654,7 @@
   }
   uint64_t length64 = static_cast<uint64_t>(length);
   length = std::min(length64, state_->max_physical_address() - address + 1);
-  auto *db = db_factory_.Allocate(length);
+  auto* db = db_factory_.Allocate(length);
   std::memcpy(db->raw_ptr(), buffer, length);
   // Store bypassing any watch points/semihosting.
   state_->memory()->Store(address, db);
@@ -784,7 +784,7 @@
   return absl::OkStatus();
 }
 
-absl::StatusOr<Instruction *> RiscVTop::GetInstruction(uint64_t address) {
+absl::StatusOr<Instruction*> RiscVTop::GetInstruction(uint64_t address) {
   // If requesting the instruction at an action point, we need to write the
   // original instruction back to memory before getting the disassembly.
   bool inst_swap = rv_action_point_manager_->IsActionPointActive(address);
@@ -793,7 +793,7 @@
         ->WriteOriginalInstruction(address);
   }
   // Get the decoded instruction.
-  Instruction *inst = rv_decode_cache_->GetDecodedInstruction(address);
+  Instruction* inst = rv_decode_cache_->GetDecodedInstruction(address);
   inst->IncRef();
   // Swap back if required.
   if (inst_swap) {
@@ -811,14 +811,14 @@
 
   auto res = GetInstruction(address);
   if (!res.ok()) return res.status();
-  Instruction *inst = res.value();
+  Instruction* inst = res.value();
   auto disasm = inst != nullptr ? inst->AsString() : "Invalid instruction";
   inst->DecRef();
   return disasm;
 }
 
 void RiscVTop::RequestHalt(HaltReasonValueType halt_reason,
-                           const Instruction *inst) {
+                           const Instruction* inst) {
   // First set the halt_reason_, then the halt flag.
   halt_reason_ = halt_reason;
   halted_ = true;
@@ -830,7 +830,7 @@
   }
 }
 
-void RiscVTop::RequestHalt(HaltReason halt_reason, const Instruction *inst) {
+void RiscVTop::RequestHalt(HaltReason halt_reason, const Instruction* inst) {
   RequestHalt(*halt_reason, inst);
 }
 
@@ -846,8 +846,8 @@
   if (absl::popcount(size) != 1) {
     return absl::InvalidArgumentError("Invalid size - must be a power of 2");
   }
-  auto *new_db = db_factory_.Allocate<BranchTraceEntry>(size);
-  auto *new_trace = reinterpret_cast<BranchTraceEntry *>(new_db->raw_ptr());
+  auto* new_db = db_factory_.Allocate<BranchTraceEntry>(size);
+  auto* new_trace = reinterpret_cast<BranchTraceEntry*>(new_db->raw_ptr());
   if (new_db == nullptr) {
     return absl::InternalError("Failed to allocate new branch trace buffer");
   }
@@ -882,7 +882,7 @@
 
 void RiscVTop::AddToBranchTrace(uint64_t from, uint64_t to) {
   // Get the most recent entry.
-  auto &entry = branch_trace_[branch_trace_head_];
+  auto& entry = branch_trace_[branch_trace_head_];
   // If the branch is the same as the previous, just increment its count.
   if ((from == entry.from) && (to == entry.to)) {
     entry.count++;
@@ -894,14 +894,14 @@
 }
 
 void RiscVTop::EnableStatistics() {
-  for (auto &[unused, counter_ptr] : counter_map()) {
+  for (auto& [unused, counter_ptr] : counter_map()) {
     if (counter_ptr->GetName() == "pc") continue;
     counter_ptr->SetIsEnabled(true);
   }
 }
 
 void RiscVTop::DisableStatistics() {
-  for (auto &[unused, counter_ptr] : counter_map()) {
+  for (auto& [unused, counter_ptr] : counter_map()) {
     if (counter_ptr->GetName() == "pc") continue;
     counter_ptr->SetIsEnabled(false);
   }
diff --git a/riscv/riscv_top.h b/riscv/riscv_top.h
index 7786ff2..e51ad42 100644
--- a/riscv/riscv_top.h
+++ b/riscv/riscv_top.h
@@ -69,11 +69,11 @@
   using RunStatus = generic::CoreDebugInterface::RunStatus;
   using HaltReason = generic::CoreDebugInterface::HaltReason;
 
-  RiscVTop(std::string name, RiscVState *state,
-           generic::DecoderInterface *decoder);
+  RiscVTop(std::string name, RiscVState* state,
+           generic::DecoderInterface* decoder);
   RiscVTop() = delete;
-  RiscVTop(const RiscVTop &) = delete;
-  RiscVTop &operator=(const RiscVTop &) = delete;
+  RiscVTop(const RiscVTop&) = delete;
+  RiscVTop& operator=(const RiscVTop&) = delete;
   ~RiscVTop() override;
 
   // Methods inherited from CoreDebugInterface.
@@ -88,14 +88,14 @@
   absl::StatusOr<HaltReasonValueType> GetLastHaltReason() override;
 
   // Register access by register name.
-  absl::StatusOr<uint64_t> ReadRegister(const std::string &name) override;
-  absl::Status WriteRegister(const std::string &name, uint64_t value) override;
-  absl::StatusOr<generic::DataBuffer *> GetRegisterDataBuffer(
-      const std::string &name) override;
+  absl::StatusOr<uint64_t> ReadRegister(const std::string& name) override;
+  absl::Status WriteRegister(const std::string& name, uint64_t value) override;
+  absl::StatusOr<generic::DataBuffer*> GetRegisterDataBuffer(
+      const std::string& name) override;
   // Read and Write memory methods bypass any semihosting.
-  absl::StatusOr<size_t> ReadMemory(uint64_t address, void *buf,
+  absl::StatusOr<size_t> ReadMemory(uint64_t address, void* buf,
                                     size_t length) override;
-  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void *buf,
+  absl::StatusOr<size_t> WriteMemory(uint64_t address, const void* buf,
                                      size_t length) override;
   // Breakpoints.
   bool HasBreakpoint(uint64_t address) override;
@@ -119,12 +119,12 @@
   // If successful, returns a pointer to the instruction at the given address.
   // The instruction object is IncRef'ed, and the caller must DecRef the object
   // when it is done with it.
-  absl::StatusOr<Instruction *> GetInstruction(uint64_t address) override;
+  absl::StatusOr<Instruction*> GetInstruction(uint64_t address) override;
   absl::StatusOr<std::string> GetDisassembly(uint64_t address) override;
 
   // Called when a halt is requested.
-  void RequestHalt(HaltReason halt_reason, const Instruction *inst);
-  void RequestHalt(HaltReasonValueType halt_reason, const Instruction *inst);
+  void RequestHalt(HaltReason halt_reason, const Instruction* inst);
+  void RequestHalt(HaltReasonValueType halt_reason, const Instruction* inst);
 
   // Resize branch trace.
   absl::Status ResizeBranchTrace(size_t size);
@@ -134,31 +134,31 @@
   void DisableStatistics();
 
   // Accessors.
-  RiscVState *state() const { return state_; }
+  RiscVState* state() const { return state_; }
 
   // The following are not const as callers may need to call non-const methods
   // of the counter.
-  generic::SimpleCounter<uint64_t> *counter_num_instructions() {
+  generic::SimpleCounter<uint64_t>* counter_num_instructions() {
     return &counter_num_instructions_;
   }
-  generic::SimpleCounter<uint64_t> *counter_num_cycles() {
+  generic::SimpleCounter<uint64_t>* counter_num_cycles() {
     return &counter_num_cycles_;
   }
-  generic::SimpleCounter<uint64_t> *counter_pc() { return &counter_pc_; }
+  generic::SimpleCounter<uint64_t>* counter_pc() { return &counter_pc_; }
   // Memory watchers used for data watch points.
-  util::MemoryWatcher *memory_watcher() { return memory_watcher_; }
+  util::MemoryWatcher* memory_watcher() { return memory_watcher_; }
 
-  const std::string &halt_string() const { return halt_string_; }
+  const std::string& halt_string() const { return halt_string_; }
   void set_halt_string(std::string halt_string) { halt_string_ = halt_string; }
 
-  Cache *icache() const { return icache_; }
-  Cache *dcache() const { return dcache_; }
+  Cache* icache() const { return icache_; }
+  Cache* dcache() const { return dcache_; }
 
  private:
   // Initialize the top.
   void Initialize();
   // Configure cache helper method.
-  void ConfigureCache(Cache *&cache, Config<std::string> &config);
+  void ConfigureCache(Cache*& cache, Config<std::string>& config);
   // Helper method to step past a breakpoint.
   absl::Status StepPastBreakpoint();
   // Set the pc value.
@@ -176,32 +176,32 @@
   bool halted_ = false;
   // Set to true if the next instruction requires a step-over.
   bool need_to_step_over_ = false;
-  absl::Notification *run_halted_ = nullptr;
-  absl::Notification *run_started_ = nullptr;
+  absl::Notification* run_halted_ = nullptr;
+  absl::Notification* run_started_ = nullptr;
   // The local RiscV32 state.
-  RiscVState *state_;
+  RiscVState* state_;
   // Memory interface used by action point manager.
-  RiscVActionPointMemoryInterface *rv_action_point_memory_interface_ = nullptr;
+  RiscVActionPointMemoryInterface* rv_action_point_memory_interface_ = nullptr;
   // Action point manager.
-  ActionPointManagerBase *rv_action_point_manager_ = nullptr;
+  ActionPointManagerBase* rv_action_point_manager_ = nullptr;
   // Breakpoint manager.
-  BreakpointManager *rv_breakpoint_manager_ = nullptr;
+  BreakpointManager* rv_breakpoint_manager_ = nullptr;
   // Textual description of halt reason.
   std::string halt_string_;
   // The pc register instance.
-  generic::RegisterBase *pc_;
+  generic::RegisterBase* pc_;
   // RiscV32 decoder instance.
-  generic::DecoderInterface *rv_decoder_ = nullptr;
+  generic::DecoderInterface* rv_decoder_ = nullptr;
   // Decode cache, memory and memory watcher.
-  generic::DecodeCache *rv_decode_cache_ = nullptr;
-  util::MemoryWatcher *memory_watcher_ = nullptr;
+  generic::DecodeCache* rv_decode_cache_ = nullptr;
+  util::MemoryWatcher* memory_watcher_ = nullptr;
   // Branch trace info - uses a circular buffer. The size is defined by the
   // constant kBranchTraceSize in the .cc file.
-  BranchTraceEntry *branch_trace_;
+  BranchTraceEntry* branch_trace_;
   // Data buffer used to hold the branch trace info. This is used so that it
   // can be returned to the debug command shell using the GetRegisterDataBuffer
   // call.
-  DataBuffer *branch_trace_db_ = nullptr;
+  DataBuffer* branch_trace_db_ = nullptr;
   // Points to the most recently written entry in the circular buffer.
   int branch_trace_head_ = 0;
   int branch_trace_mask_ = kBranchTraceSize - 1;
@@ -219,9 +219,9 @@
   Config<std::string> icache_config_;
   Config<std::string> dcache_config_;
   // ICache & DCache.
-  Cache *dcache_ = nullptr;
-  Cache *icache_ = nullptr;
-  DataBuffer *inst_db_ = nullptr;
+  Cache* dcache_ = nullptr;
+  Cache* icache_ = nullptr;
+  DataBuffer* inst_db_ = nullptr;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv_vector_basic_bit_manipulation_instructions.cc b/riscv/riscv_vector_basic_bit_manipulation_instructions.cc
index d6d8273..6f90aad 100644
--- a/riscv/riscv_vector_basic_bit_manipulation_instructions.cc
+++ b/riscv/riscv_vector_basic_bit_manipulation_instructions.cc
@@ -31,8 +31,8 @@
 namespace sim {
 namespace riscv {
 
-void RV32VUnimplementedInstruction(const Instruction *inst) {
-  auto *state = static_cast<RiscVState *>(inst->state());
+void RV32VUnimplementedInstruction(const Instruction* inst) {
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
               *ExceptionCode::kIllegalInstruction,
               /*epc*/ inst->address(), inst);
@@ -61,8 +61,8 @@
 }
 }  // namespace
 
-void Vandn(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vandn(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -88,8 +88,8 @@
   }
 }
 
-void Vbrev8(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vbrev8(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -100,8 +100,8 @@
       return RiscVUnaryVectorOp<uint16_t, uint16_t>(
           rv_vector, inst, [](uint16_t vs2) -> uint16_t {
             absl::Span<uint8_t> span =
-                absl::MakeSpan(reinterpret_cast<uint8_t *>(&vs2), sizeof(vs2));
-            for (uint8_t &byte : span) {
+                absl::MakeSpan(reinterpret_cast<uint8_t*>(&vs2), sizeof(vs2));
+            for (uint8_t& byte : span) {
               byte = BitReverse(byte);
             }
             return vs2;
@@ -110,8 +110,8 @@
       return RiscVUnaryVectorOp<uint32_t, uint32_t>(
           rv_vector, inst, [](uint32_t vs2) -> uint32_t {
             absl::Span<uint8_t> span =
-                absl::MakeSpan(reinterpret_cast<uint8_t *>(&vs2), sizeof(vs2));
-            for (uint8_t &byte : span) {
+                absl::MakeSpan(reinterpret_cast<uint8_t*>(&vs2), sizeof(vs2));
+            for (uint8_t& byte : span) {
               byte = BitReverse(byte);
             }
             return vs2;
@@ -120,8 +120,8 @@
       return RiscVUnaryVectorOp<uint64_t, uint64_t>(
           rv_vector, inst, [](uint64_t vs2) -> uint64_t {
             absl::Span<uint8_t> span =
-                absl::MakeSpan(reinterpret_cast<uint8_t *>(&vs2), sizeof(vs2));
-            for (uint8_t &byte : span) {
+                absl::MakeSpan(reinterpret_cast<uint8_t*>(&vs2), sizeof(vs2));
+            for (uint8_t& byte : span) {
               byte = BitReverse(byte);
             }
             return vs2;
@@ -133,8 +133,8 @@
   }
 }
 
-void Vrev8(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrev8(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -159,8 +159,8 @@
   }
 }
 
-void Vrol(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrol(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -194,8 +194,8 @@
   }
 }
 
-void Vror(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vror(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -231,8 +231,8 @@
 
 // Instructions that are only in Zvbb
 
-void Vbrev(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vbrev(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -258,8 +258,8 @@
   }
 }
 
-void Vclz(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vclz(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -285,8 +285,8 @@
   }
 }
 
-void Vctz(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vctz(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -312,8 +312,8 @@
   }
 }
 
-void VectorVcpop(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VectorVcpop(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -339,8 +339,8 @@
   }
 }
 
-void Vwsll(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwsll(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
diff --git a/riscv/riscv_vector_basic_bit_manipulation_instructions.h b/riscv/riscv_vector_basic_bit_manipulation_instructions.h
index 9c4f1c6..271be40 100644
--- a/riscv/riscv_vector_basic_bit_manipulation_instructions.h
+++ b/riscv/riscv_vector_basic_bit_manipulation_instructions.h
@@ -23,26 +23,26 @@
 
 using Instruction = ::mpact::sim::generic::Instruction;
 
-void RV32VUnimplementedInstruction(const Instruction *inst);
+void RV32VUnimplementedInstruction(const Instruction* inst);
 
 // Vector bit manipulation instructions.
 
 // Zvkb subset of instructions
-void Vandn(Instruction *);
-void Vbrev8(Instruction *);
-void Vrev8(Instruction *);
-void Vrol(Instruction *);
-void Vror(Instruction *);
+void Vandn(Instruction*);
+void Vbrev8(Instruction*);
+void Vrev8(Instruction*);
+void Vrol(Instruction*);
+void Vror(Instruction*);
 
 // Zvbb instructions
-void Vbrev(Instruction *);
-void Vclz(Instruction *);
-void Vctz(Instruction *);
+void Vbrev(Instruction*);
+void Vclz(Instruction*);
+void Vctz(Instruction*);
 // There is a name collision with an existing Vcpop instruction that stores the
 // result in a scalar register. This implementation stores the result in a
 // vector register.
-void VectorVcpop(Instruction *);
-void Vwsll(Instruction *);
+void VectorVcpop(Instruction*);
+void Vwsll(Instruction*);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_fp_compare_instructions.cc b/riscv/riscv_vector_fp_compare_instructions.cc
index b734145..2d6b1a3 100644
--- a/riscv/riscv_vector_fp_compare_instructions.cc
+++ b/riscv/riscv_vector_fp_compare_instructions.cc
@@ -15,7 +15,6 @@
 #include "riscv/riscv_vector_fp_compare_instructions.h"
 
 #include "absl/log/log.h"
-#include "mpact/sim/generic/instruction.h"
 #include "riscv/riscv_state.h"
 #include "riscv/riscv_vector_instruction_helpers.h"
 #include "riscv/riscv_vector_state.h"
@@ -25,8 +24,8 @@
 namespace riscv {
 
 // Vector floating point compare equal.
-void Vmfeq(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmfeq(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -45,8 +44,8 @@
 }
 
 // Vector floating point compare less than or equal.
-void Vmfle(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmfle(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -65,8 +64,8 @@
 }
 
 // Vector floating compare less than.
-void Vmflt(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmflt(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -85,8 +84,8 @@
 }
 
 // Vector floating point compare not equal.
-void Vmfne(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmfne(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -105,8 +104,8 @@
 }
 
 // Vector floating point compare greater than.
-void Vmfgt(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmfgt(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -125,8 +124,8 @@
 }
 
 // Vector floating point compare greater than or equal.
-void Vmfge(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmfge(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
diff --git a/riscv/riscv_vector_fp_compare_instructions.h b/riscv/riscv_vector_fp_compare_instructions.h
index 1e6eb64..1975ea6 100644
--- a/riscv/riscv_vector_fp_compare_instructions.h
+++ b/riscv/riscv_vector_fp_compare_instructions.h
@@ -31,12 +31,12 @@
 // Vmfge only take the scalar register), source operand 2 is the vector mask
 // register. Destination operand 0 is a vector register treated as the
 // destination mask register.
-void Vmfeq(const Instruction *inst);
-void Vmfle(const Instruction *inst);
-void Vmflt(const Instruction *inst);
-void Vmfne(const Instruction *inst);
-void Vmfgt(const Instruction *inst);
-void Vmfge(const Instruction *inst);
+void Vmfeq(const Instruction* inst);
+void Vmfle(const Instruction* inst);
+void Vmflt(const Instruction* inst);
+void Vmfne(const Instruction* inst);
+void Vmfgt(const Instruction* inst);
+void Vmfge(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_fp_instructions.cc b/riscv/riscv_vector_fp_instructions.cc
index dc1c9df..5fec18f 100644
--- a/riscv/riscv_vector_fp_instructions.cc
+++ b/riscv/riscv_vector_fp_instructions.cc
@@ -35,9 +35,9 @@
 using ::mpact::sim::generic::FPTypeInfo;
 
 // Floating point add.
-void Vfadd(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfadd(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -62,9 +62,9 @@
 }
 
 // Floating point subtract.
-void Vfsub(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfsub(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -89,9 +89,9 @@
 }
 
 // Reverse floating point subtract (rs1 - vs2).
-void Vfrsub(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfrsub(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -116,9 +116,9 @@
 }
 
 // Widening floating point add.
-void Vfwadd(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwadd(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -142,9 +142,9 @@
 }
 
 // Widening floating point subtract.
-void Vfwsub(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwsub(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -168,9 +168,9 @@
 }
 
 // Widening floating point add with wide operand (vs2).
-void Vfwaddw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwaddw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -193,9 +193,9 @@
 }
 
 // Widening floating point subtract with wide operand (vs2).
-void Vfwsubw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwsubw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -218,9 +218,9 @@
 }
 
 // Floating point multiply.
-void Vfmul(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmul(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -245,9 +245,9 @@
 }
 
 // Floating point division vs2/vs1;
-void Vfdiv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfdiv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -272,9 +272,9 @@
 }
 
 // Floating point reverse division vs1/vs2.
-void Vfrdiv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfrdiv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -299,9 +299,9 @@
 }
 
 // Widening floating point multiply.
-void Vfwmul(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwmul(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -325,9 +325,9 @@
 }
 
 // Floating point multiply and add vs2.
-void Vfmadd(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmadd(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -354,9 +354,9 @@
 }
 
 // Negated floating point multiply and add vs2.
-void Vfnmadd(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfnmadd(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -383,9 +383,9 @@
 }
 
 // Floating point multiply and subtract vs2.
-void Vfmsub(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmsub(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -412,9 +412,9 @@
 }
 
 // Negated floating point multiply and subtract vs2.
-void Vfnmsub(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfnmsub(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -441,9 +441,9 @@
 }
 
 // Floating point multiply and accumulate vd.
-void Vfmacc(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmacc(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -470,9 +470,9 @@
 }
 
 // Negated floating point multiply and accumulate vd.
-void Vfnmacc(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfnmacc(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -499,9 +499,9 @@
 }
 
 // Floating point multiply and subtract vd.
-void Vfmsac(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmsac(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -528,9 +528,9 @@
 }
 
 // Negated floating point multiply and subtract vd.
-void Vfnmsac(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfnmsac(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -557,9 +557,9 @@
 }
 
 // Widening floating point multiply and accumulate vd.
-void Vfwmacc(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwmacc(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -583,9 +583,9 @@
 }
 
 // Widening negated floating point multiply and accumulate vd.
-void Vfwnmacc(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwnmacc(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -609,9 +609,9 @@
 }
 
 // Widening floating point multiply and subtract vd.
-void Vfwmsac(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwmsac(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -635,9 +635,9 @@
 }
 
 // Widening negated floating point multiply and subtract vd.
-void Vfwnmsac(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwnmsac(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -661,8 +661,8 @@
 }
 
 // Change the sign of vs2 to the sign of vs1.
-void Vfsgnj(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfsgnj(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -684,8 +684,8 @@
 }
 
 // Change the sign of vs2 to the negation of the sign of vs1.
-void Vfsgnjn(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfsgnjn(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -707,8 +707,8 @@
 }
 
 // Change the sign of vs2 to the xor of the sign of the two operands.
-void Vfsgnjx(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfsgnjx(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -741,7 +741,7 @@
   }
   if (FPTypeInfo<T>::IsNaN(vs2) && FPTypeInfo<T>::IsNaN(vs1)) {
     auto c_nan = FPTypeInfo<T>::kCanonicalNaN;
-    return std::make_tuple(*reinterpret_cast<T *>(&c_nan), flag);
+    return std::make_tuple(*reinterpret_cast<T*>(&c_nan), flag);
   }
   // If either operand is a NaN return the other.
   if (FPTypeInfo<T>::IsNaN(vs2)) return std::tie(vs1, flag);
@@ -756,8 +756,8 @@
 }
 
 // Vector floating point min.
-void Vfmin(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmin(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -786,8 +786,8 @@
 }
 
 // Vector floating point max.
-void Vfmax(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmax(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -816,8 +816,8 @@
 }
 
 // Vector fp merge.
-void Vfmerge(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmerge(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
diff --git a/riscv/riscv_vector_fp_instructions.h b/riscv/riscv_vector_fp_instructions.h
index fe7e7a7..8304ff0 100644
--- a/riscv/riscv_vector_fp_instructions.h
+++ b/riscv/riscv_vector_fp_instructions.h
@@ -31,52 +31,52 @@
 // register group, source 1 is either a vector register group or a scalar
 // register, and source 2 is the mask register. Destination 0 is a vector
 // register group.
-void Vfadd(const Instruction *inst);
-void Vfsub(const Instruction *inst);
-void Vfrsub(const Instruction *inst);
-void Vfwadd(const Instruction *inst);
-void Vfwsub(const Instruction *inst);
-void Vfwaddw(const Instruction *inst);
-void Vfwsubw(const Instruction *inst);
-void Vfmul(const Instruction *inst);
-void Vfdiv(const Instruction *inst);
-void Vfrdiv(const Instruction *inst);
-void Vfwmul(const Instruction *inst);
+void Vfadd(const Instruction* inst);
+void Vfsub(const Instruction* inst);
+void Vfrsub(const Instruction* inst);
+void Vfwadd(const Instruction* inst);
+void Vfwsub(const Instruction* inst);
+void Vfwaddw(const Instruction* inst);
+void Vfwsubw(const Instruction* inst);
+void Vfmul(const Instruction* inst);
+void Vfdiv(const Instruction* inst);
+void Vfrdiv(const Instruction* inst);
+void Vfwmul(const Instruction* inst);
 
 // Vector floating point multiply and add/subtract instructions. Each of these
 // instructions take four source operands and one destination operand. Source 0
 // is a vector register group, source 1 is either a vector register group or a
 // scalar register, source 2 is a vector register group, and source 3 is the
 // mask register. Destination 0 is a vector register group.
-void Vfmadd(const Instruction *inst);
-void Vfnmadd(const Instruction *inst);
-void Vfmsub(const Instruction *inst);
-void Vfnmsub(const Instruction *inst);
-void Vfmacc(const Instruction *inst);
-void Vfnmacc(const Instruction *inst);
-void Vfmsac(const Instruction *inst);
-void Vfnmsac(const Instruction *inst);
-void Vfwmacc(const Instruction *inst);
-void Vfwnmacc(const Instruction *inst);
-void Vfwmsac(const Instruction *inst);
-void Vfwnmsac(const Instruction *inst);
+void Vfmadd(const Instruction* inst);
+void Vfnmadd(const Instruction* inst);
+void Vfmsub(const Instruction* inst);
+void Vfnmsub(const Instruction* inst);
+void Vfmacc(const Instruction* inst);
+void Vfnmacc(const Instruction* inst);
+void Vfmsac(const Instruction* inst);
+void Vfnmsac(const Instruction* inst);
+void Vfwmacc(const Instruction* inst);
+void Vfwnmacc(const Instruction* inst);
+void Vfwmsac(const Instruction* inst);
+void Vfwnmsac(const Instruction* inst);
 
 // Vector floating point sign modification instructions. Each of these
 // instructions take three source operands and one destination operand. Source 0
 // is a vector register group, source 1 is either a vector register group or a
 // scalar register, and source 2 is the mask register. Destination 0 is a vector
 // register group.
-void Vfsgnj(const Instruction *inst);
-void Vfsgnjn(const Instruction *inst);
-void Vfsgnjx(const Instruction *inst);
+void Vfsgnj(const Instruction* inst);
+void Vfsgnjn(const Instruction* inst);
+void Vfsgnjx(const Instruction* inst);
 
 // Vector selection instructions. Each of these instructions take three source
 // operands and one destination operand. Source 0 is a vector register group,
 // source 1 is either a vector register group or a scalar register, and source 2
 // is the mask register. Destination 0 is a vector register group.
-void Vfmin(const Instruction *inst);
-void Vfmax(const Instruction *inst);
-void Vfmerge(const Instruction *inst);
+void Vfmin(const Instruction* inst);
+void Vfmax(const Instruction* inst);
+void Vfmerge(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_fp_reduction_instructions.cc b/riscv/riscv_vector_fp_reduction_instructions.cc
index cf494e8..d2cab08 100644
--- a/riscv/riscv_vector_fp_reduction_instructions.cc
+++ b/riscv/riscv_vector_fp_reduction_instructions.cc
@@ -35,9 +35,9 @@
 // separate entry in the destination vector.
 
 // Sum reduction.
-void Vfredosum(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfredosum(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -63,9 +63,9 @@
   }
 }
 
-void Vfwredosum(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwredosum(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -95,7 +95,7 @@
   if (FPTypeInfo<T>::IsSNaN(vs1) || FPTypeInfo<T>::IsSNaN(vs2) ||
       (FPTypeInfo<T>::IsNaN(vs2) && FPTypeInfo<T>::IsNaN(vs1))) {
     typename FPTypeInfo<T>::UIntType c_nan = FPTypeInfo<T>::kCanonicalNaN;
-    return *reinterpret_cast<T *>(&c_nan);
+    return *reinterpret_cast<T*>(&c_nan);
   }
   // If either operand is a NaN return the other.
   if (FPTypeInfo<T>::IsNaN(vs2)) return vs1;
@@ -105,9 +105,9 @@
 }
 
 // FP min reduction.
-void Vfredmin(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfredmin(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -141,9 +141,9 @@
 }
 
 // FP max reduction.
-void Vfredmax(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfredmax(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
diff --git a/riscv/riscv_vector_fp_reduction_instructions.h b/riscv/riscv_vector_fp_reduction_instructions.h
index a997632..f84b409 100644
--- a/riscv/riscv_vector_fp_reduction_instructions.h
+++ b/riscv/riscv_vector_fp_reduction_instructions.h
@@ -30,10 +30,10 @@
 // destination operand. Source 0 is a vector register group, source 1 is a
 // vector register, and source 2 is the vector mask register. Destination
 // operand 0 is a vector register group.
-void Vfredosum(const Instruction *inst);
-void Vfwredosum(const Instruction *inst);
-void Vfredmin(const Instruction *inst);
-void Vfredmax(const Instruction *inst);
+void Vfredosum(const Instruction* inst);
+void Vfwredosum(const Instruction* inst);
+void Vfredmin(const Instruction* inst);
+void Vfredmax(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_fp_unary_instructions.cc b/riscv/riscv_vector_fp_unary_instructions.cc
index 822f99a..c777429 100644
--- a/riscv/riscv_vector_fp_unary_instructions.cc
+++ b/riscv/riscv_vector_fp_unary_instructions.cc
@@ -61,15 +61,15 @@
     4,   3,   3,   2,   2,   1,   1,   0};
 
 // Move float from scalar fp register to vector register(all elements).
-void Vfmvvf(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmvvf(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   const int vl = rv_vector->vector_length();
   if (rv_vector->vstart() > 0) return;
   if (vl == 0) return;
 
   const int sew = rv_vector->selected_element_width();
   auto dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   auto dest_db = dest_op->CopyDataBuffer();
   switch (sew) {
     case 4:
@@ -95,13 +95,13 @@
 }
 
 // Move float from vector to scalar fp register(first element).
-void Vfmvsf(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmvsf(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart() > 0) return;
   if (rv_vector->vector_length() == 0) return;
   int sew = rv_vector->selected_element_width();
   auto dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   auto dest_db = dest_op->CopyDataBuffer();
   switch (sew) {
     case 4:
@@ -123,8 +123,8 @@
 }
 
 // Move scalar floating point value to element 0 of vector register.
-void Vfmvfs(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfmvfs(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   auto dest_op = inst->Destination(0);
   auto dest_db = dest_op->AllocateDataBuffer();
@@ -157,9 +157,9 @@
 }
 
 // Convert floating point to unsigned integer.
-void Vfcvtxufv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfcvtxufv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -185,9 +185,9 @@
 }
 
 // Convert floating point to signed integer.
-void Vfcvtxfv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfcvtxfv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -213,9 +213,9 @@
 }
 
 // Convert unsigned integer to floating point.
-void Vfcvtfxuv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfcvtfxuv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -240,9 +240,9 @@
 }
 
 // Convert signed integer to floating point.
-void Vfcvtfxv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfcvtfxv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -267,9 +267,9 @@
 }
 
 // Convert floating point to unsigned integer with truncation.
-void Vfcvtrtzxufv(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfcvtrtzxufv(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -290,9 +290,9 @@
 }
 
 // Convert floating point to signed integer with truncation.
-void Vfcvtrtzxfv(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfcvtrtzxfv(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -313,9 +313,9 @@
 }
 
 // Widening conversion of floating point to unsigned integer.
-void Vfwcvtxufv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwcvtxufv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -336,9 +336,9 @@
 }
 
 // Widening conversion of floating point to signed integer.
-void Vfwcvtxfv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwcvtxfv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -359,8 +359,8 @@
 }
 
 // Wideing conversion of floating point to floating point.
-void Vfwcvtffv(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwcvtffv(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -375,9 +375,9 @@
 }
 
 // Widening conversion of unsigned integer to floating point.
-void Vfwcvtfxuv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwcvtfxuv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -402,9 +402,9 @@
 }
 
 // Widening conversion of signed integer to floating point.
-void Vfwcvtfxv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfwcvtfxv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -429,9 +429,9 @@
 }
 
 // Widening conversion of floating point to unsigned integer with truncation.
-void Vfwcvtrtzxufv(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfwcvtrtzxufv(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -447,9 +447,9 @@
 }
 
 // Widening conversion of floating point to signed integer with truncation.
-void Vfwcvtrtzxfv(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfwcvtrtzxfv(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -465,9 +465,9 @@
 }
 
 // Narrowing conversion of floating point to unsigned integer.
-void Vfncvtxufw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtxufw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -493,9 +493,9 @@
 }
 
 // Narrowing conversion of floating point to signed integer.
-void Vfncvtxfw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtxfw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -521,9 +521,9 @@
 }
 
 // Narrowing conversion of floating point to floating point.
-void Vfncvtffw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtffw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -544,9 +544,9 @@
 }
 
 // Narrowing conversion of floating point to floating point rounding to odd.
-void Vfncvtrodffw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtrodffw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -566,16 +566,16 @@
             }
             using UIntD = typename FPTypeInfo<double>::UIntType;
             using UIntF = typename FPTypeInfo<float>::UIntType;
-            UIntD uval = *reinterpret_cast<UIntD *>(&vs2);
+            UIntD uval = *reinterpret_cast<UIntD*>(&vs2);
             int sig_diff =
                 FPTypeInfo<double>::kSigSize - FPTypeInfo<float>::kSigSize;
             UIntD mask = (1ULL << sig_diff) - 1;
             UIntF bit = (mask & uval) != 0;
             auto res = static_cast<float>(vs2);
             if (FPTypeInfo<float>::IsInf(res)) return res;
-            UIntF ures = *reinterpret_cast<UIntF *>(&res);
+            UIntF ures = *reinterpret_cast<UIntF*>(&res);
             ures |= bit;
-            return *reinterpret_cast<float *>(&ures);
+            return *reinterpret_cast<float*>(&ures);
           });
     default:
       LOG(ERROR) << "Vfwcvt.rod.f.fw: Illegal sew (" << sew << ")";
@@ -585,9 +585,9 @@
 }
 
 // Narrowing conversion of unsigned integer to floating point.
-void Vfncvtfxuw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtfxuw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -608,9 +608,9 @@
 }
 
 // Narrowing conversion of signed integeer to floating point.
-void Vfncvtfxw(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfncvtfxw(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -631,9 +631,9 @@
 }
 
 // Narrowing conversion of floating point to unsigned integer with truncation.
-void Vfncvtrtzxufw(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfncvtrtzxufw(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -654,9 +654,9 @@
 }
 
 // Narrowing conversion of floating point to signed integer with truncation.
-void Vfncvtrtzxfw(const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vfncvtrtzxfw(const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -683,7 +683,7 @@
   T res;
   if (FPTypeInfo<T>::IsNaN(vs2) || vs2 < 0.0) {
     auto value = FPTypeInfo<T>::kCanonicalNaN;
-    res = *reinterpret_cast<T *>(&value);
+    res = *reinterpret_cast<T*>(&value);
     flags = *FPExceptions::kInvalidOp;
     return std::tie(res, flags);
   }
@@ -693,9 +693,9 @@
 }
 
 // Square root.
-void Vfsqrtv(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfsqrtv(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (!rv_fp->rounding_mode_valid()) {
     LOG(ERROR) << "Invalid rounding mode";
     rv_vector->set_vector_exception();
@@ -728,7 +728,7 @@
         return;
     }
   }
-  auto *fflags = rv_fp->fflags();
+  auto* fflags = rv_fp->fflags();
   fflags->Write(flags | fflags->AsUint32());
 }
 
@@ -737,7 +737,7 @@
 template <typename T>
 inline T RecipSqrt7(T value) {
   using Uint = typename FPTypeInfo<T>::UIntType;
-  Uint uint_value = *reinterpret_cast<Uint *>(&value);
+  Uint uint_value = *reinterpret_cast<Uint*>(&value);
   // The input value is positive. Negative values are already handled.
   int norm_exponent =
       (uint_value & FPTypeInfo<T>::kExpMask) >> FPTypeInfo<T>::kSigSize;
@@ -760,7 +760,7 @@
                       << (FPTypeInfo<T>::kSigSize - 7);
   Uint new_exponent = (3 * FPTypeInfo<T>::kExpBias - 1 - norm_exponent) / 2;
   Uint new_value = (new_exponent << FPTypeInfo<T>::kSigSize) | new_mantissa;
-  T new_fp_value = *reinterpret_cast<T *>(&new_value);
+  T new_fp_value = *reinterpret_cast<T*>(&new_value);
   return new_fp_value;
 }
 
@@ -804,9 +804,9 @@
 }
 
 // Approximation of reciprocal square root to 7 bits mantissa.
-void Vfrsqrt7v(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfrsqrt7v(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -834,7 +834,7 @@
 inline T Recip7(T value, FPRoundingMode rm) {
   using Uint = typename FPTypeInfo<T>::UIntType;
   using Int = typename FPTypeInfo<T>::IntType;
-  Uint uint_value = *reinterpret_cast<Uint *>(&value);
+  Uint uint_value = *reinterpret_cast<Uint*>(&value);
   Int norm_exponent =
       (uint_value & FPTypeInfo<T>::kExpMask) >> FPTypeInfo<T>::kSigSize;
   Uint norm_mantissa = uint_value & FPTypeInfo<T>::kSigMask;
@@ -888,7 +888,7 @@
     new_mantissa &= 0b111'1111;
   }
   Uint new_value = (new_exponent << FPTypeInfo<T>::kSigSize) | new_mantissa;
-  T new_fp_value = *reinterpret_cast<T *>(&new_value);
+  T new_fp_value = *reinterpret_cast<T*>(&new_value);
   return value < 0.0 ? -new_fp_value : new_fp_value;
 }
 
@@ -916,9 +916,9 @@
 }
 
 // Approximate reciprocal to 7 bits of mantissa.
-void Vfrec7v(const Instruction *inst) {
-  auto *rv_fp = static_cast<RiscVState *>(inst->state())->rv_fp();
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfrec7v(const Instruction* inst) {
+  auto* rv_fp = static_cast<RiscVState*>(inst->state())->rv_fp();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   ScopedFPStatus set_fpstatus(rv_fp->host_fp_interface());
   auto rm = rv_fp->GetRoundingMode();
@@ -939,8 +939,8 @@
 }
 
 // Classify floating point value.
-void Vfclassv(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfclassv(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
diff --git a/riscv/riscv_vector_fp_unary_instructions.h b/riscv/riscv_vector_fp_unary_instructions.h
index abd70dd..8648580 100644
--- a/riscv/riscv_vector_fp_unary_instructions.h
+++ b/riscv/riscv_vector_fp_unary_instructions.h
@@ -27,11 +27,11 @@
 using Instruction = ::mpact::sim::generic::Instruction;
 
 // Move a single floating point value from vector[0] to vector[vl-1].
-void Vfmvvf(const Instruction *inst);
+void Vfmvvf(const Instruction* inst);
 // Move a single floating point value from vector[0] to scalar fp register.
-void Vfmvsf(const Instruction *inst);
+void Vfmvsf(const Instruction* inst);
 // Move single floating point value from scalar fp register to vector[0].
-void Vfmvfs(const Instruction *inst);
+void Vfmvfs(const Instruction* inst);
 
 // Each of the following semantic functions take 2 source operands and 1
 // destination operand. Source operand 0 is a vector register group, source
@@ -44,17 +44,17 @@
 // rounding mode.
 
 // FP to unsigned integer.
-void Vfcvtxufv(const Instruction *inst);
+void Vfcvtxufv(const Instruction* inst);
 // FP to signed integer.
-void Vfcvtxfv(const Instruction *inst);
+void Vfcvtxfv(const Instruction* inst);
 // Unsigned integer to FP.
-void Vfcvtfxuv(const Instruction *inst);
+void Vfcvtfxuv(const Instruction* inst);
 // Signed integer to FP.
-void Vfcvtfxv(const Instruction *inst);
+void Vfcvtfxv(const Instruction* inst);
 // FP to unsigned integer using round to zero.
-void Vfcvtrtzxufv(const Instruction *inst);
+void Vfcvtrtzxufv(const Instruction* inst);
 // FP to signed integer using round to zero.
-void Vfcvtrtzxfv(const Instruction *inst);
+void Vfcvtrtzxfv(const Instruction* inst);
 
 // Vector element widening conversion instructions. These convert values from/to
 // signed/unsigned integer and floating point, where the resulting value is 2x
@@ -62,19 +62,19 @@
 // zero), whereas the others use the dynamically set rounding mode.
 
 // FP to wider unsigned integer.
-void Vfwcvtxufv(const Instruction *inst);
+void Vfwcvtxufv(const Instruction* inst);
 // FP to wider signed integer.
-void Vfwcvtxfv(const Instruction *inst);
+void Vfwcvtxfv(const Instruction* inst);
 // FP to next wider FP.
-void Vfwcvtffv(const Instruction *inst);
+void Vfwcvtffv(const Instruction* inst);
 // Unsigned integer to wider FP.
-void Vfwcvtfxuv(const Instruction *inst);
+void Vfwcvtfxuv(const Instruction* inst);
 // Signed integer to wider FP.
-void Vfwcvtfxv(const Instruction *inst);
+void Vfwcvtfxv(const Instruction* inst);
 // FP to wider unsigned integer using round to zero.
-void Vfwcvtrtzxufv(const Instruction *inst);
+void Vfwcvtrtzxufv(const Instruction* inst);
 // FP to wider signed integer using round to zero.
-void Vfwcvtrtzxfv(const Instruction *inst);
+void Vfwcvtrtzxfv(const Instruction* inst);
 
 // Vector element widening conversion instructions. These convert values from/to
 // signed/unsigned integer and floating point, where the resulting value is 1/2x
@@ -83,30 +83,30 @@
 // dynamically set rounding mode.
 
 // FP to narrower unsigned integer.
-void Vfncvtxufw(const Instruction *inst);
+void Vfncvtxufw(const Instruction* inst);
 // FP to narrower signed integer.
-void Vfncvtxfw(const Instruction *inst);
+void Vfncvtxfw(const Instruction* inst);
 // FP to next narrower FP.
-void Vfncvtffw(const Instruction *inst);
+void Vfncvtffw(const Instruction* inst);
 // FP to next narrower FP with round to odd.
-void Vfncvtrodffw(const Instruction *inst);
+void Vfncvtrodffw(const Instruction* inst);
 // Unsigned integer to narrower FP.
-void Vfncvtfxuw(const Instruction *inst);
+void Vfncvtfxuw(const Instruction* inst);
 // Signed integer to narrower FP.
-void Vfncvtfxw(const Instruction *inst);
+void Vfncvtfxw(const Instruction* inst);
 // FP to narrower unsigned integer using round to zero.
-void Vfncvtrtzxufw(const Instruction *inst);
+void Vfncvtrtzxufw(const Instruction* inst);
 // FP to narrower signed integer using round to zero.
-void Vfncvtrtzxfw(const Instruction *inst);
+void Vfncvtrtzxfw(const Instruction* inst);
 
 // Vector element square root instruction.
-void Vfsqrtv(const Instruction *inst);
+void Vfsqrtv(const Instruction* inst);
 // Vector element approximate reciprocal square root instruction.
-void Vfrsqrt7v(const Instruction *inst);
+void Vfrsqrt7v(const Instruction* inst);
 // Vector element approximate reciprocal instruction.
-void Vfrec7v(const Instruction *inst);
+void Vfrec7v(const Instruction* inst);
 // Vector element floating point value classify instruction.
-void Vfclassv(const Instruction *inst);
+void Vfclassv(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_instruction_helpers.h b/riscv/riscv_vector_instruction_helpers.h
index e411896..e26aebe 100644
--- a/riscv/riscv_vector_instruction_helpers.h
+++ b/riscv/riscv_vector_instruction_helpers.h
@@ -20,9 +20,10 @@
 #include <functional>
 #include <limits>
 #include <optional>
-#include <type_traits>
+#include <tuple>
 
 #include "absl/log/log.h"
+#include "absl/strings/str_cat.h"
 #include "mpact/sim/generic/instruction.h"
 #include "riscv/riscv_register.h"
 #include "riscv/riscv_state.h"
@@ -41,23 +42,23 @@
 // Note that this function will modify masked bits no matter what the mask
 // value is.
 template <typename Vs2, typename Vs1>
-void RiscVSetMaskBinaryVectorMaskOp(RiscVVectorState *rv_vector,
-                                    const Instruction *inst,
+void RiscVSetMaskBinaryVectorMaskOp(RiscVVectorState* rv_vector,
+                                    const Instruction* inst,
                                     std::function<bool(Vs2, Vs1, bool)> op) {
   if (rv_vector->vector_exception()) return;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Get the vector start element index and compute where to start
   // the operation.
   const int num_elements = rv_vector->vector_length();
   const int vector_index = rv_vector->vstart();
   // Allocate data buffer for the new register data.
-  auto *dest_db = dest_op->CopyDataBuffer();
+  auto* dest_db = dest_op->CopyDataBuffer();
   auto dest_span = dest_db->Get<uint8_t>();
   // Determine if it's vector-vector or vector-scalar.
   const bool vector_scalar = inst->Source(1)->shape()[0] == 1;
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   bool vm_unmasked_bit = false;
   if (inst->SourcesSize() > 3) {
     vm_unmasked_bit = GetInstructionSource<bool>(inst, 3);
@@ -87,23 +88,23 @@
 // mask and uses the mask value in the instruction, such as carry generation
 // from add with carry.
 template <typename Vs2, typename Vs1>
-void RiscVMaskBinaryVectorMaskOp(RiscVVectorState *rv_vector,
-                                 const Instruction *inst,
+void RiscVMaskBinaryVectorMaskOp(RiscVVectorState* rv_vector,
+                                 const Instruction* inst,
                                  std::function<bool(Vs2, Vs1, bool)> op) {
   if (rv_vector->vector_exception()) return;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Get the vector start element index and compute where to start
   // the operation.
   int num_elements = rv_vector->vector_length();
   int vector_index = rv_vector->vstart();
   // Allocate data buffer for the new register data.
-  auto *dest_db = dest_op->CopyDataBuffer();
+  auto* dest_db = dest_op->CopyDataBuffer();
   auto dest_span = dest_db->Get<uint8_t>();
   // Determine if it's vector-vector or vector-scalar.
   bool vector_scalar = inst->Source(1)->shape()[0] == 1;
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   bool vm_unmasked_bit = false;
   if (inst->SourcesSize() > 3) {
     vm_unmasked_bit = GetInstructionSource<bool>(inst, 3);
@@ -136,8 +137,8 @@
 // This helper function handles the case of vector mask
 // operations.
 template <typename Vs2, typename Vs1>
-void RiscVBinaryVectorMaskOp(RiscVVectorState *rv_vector,
-                             const Instruction *inst,
+void RiscVBinaryVectorMaskOp(RiscVVectorState* rv_vector,
+                             const Instruction* inst,
                              std::function<bool(Vs2, Vs1)> op) {
   RiscVMaskBinaryVectorMaskOp<Vs2, Vs1>(
       rv_vector, inst, [op](Vs2 vs2, Vs1 vs1, bool mask_value) -> bool {
@@ -152,16 +153,16 @@
 // operations. It implements all the checking necessary for both widening and
 // narrowing operations.
 template <typename Vd>
-void RiscVMaskNullaryVectorOp(RiscVVectorState *rv_vector,
-                              const Instruction *inst,
+void RiscVMaskNullaryVectorOp(RiscVVectorState* rv_vector,
+                              const Instruction* inst,
                               std::function<Vd(bool)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -173,13 +174,13 @@
   // There 2 types of instruction with different number of source operands.
   // 1. inst vd, vs2, vmask (viota instruction)
   // 2. inst vd, vmask (vid instruction)
-  RV32VectorSourceOperand *vs2_op = nullptr;
-  RV32VectorSourceOperand *mask_op = nullptr;
+  RV32VectorSourceOperand* vs2_op = nullptr;
+  RV32VectorSourceOperand* mask_op = nullptr;
   if (inst->SourcesSize() > 1) {
-    vs2_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
-    mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+    vs2_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
+    mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   } else {
-    mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+    mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   }
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
@@ -191,7 +192,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -228,7 +229,7 @@
 // operations. It implements all the checking necessary for both widening and
 // narrowing operations.
 template <typename Vd, typename Vs2>
-void RiscVUnaryVectorOp(RiscVVectorState *rv_vector, const Instruction *inst,
+void RiscVUnaryVectorOp(RiscVVectorState* rv_vector, const Instruction* inst,
                         std::function<Vd(Vs2)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
@@ -249,8 +250,8 @@
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -260,7 +261,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
   // the operation.
@@ -271,7 +272,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -300,7 +301,7 @@
 // narrowing operations.
 template <typename Vd, typename Vs2>
 void RiscVUnaryVectorOpWithFflags(
-    RiscVVectorState *rv_vector, const Instruction *inst,
+    RiscVVectorState* rv_vector, const Instruction* inst,
     std::function<std::tuple<Vd, uint32_t>(Vs2)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
@@ -321,8 +322,8 @@
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -332,7 +333,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
   // the operation.
@@ -344,7 +345,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -367,7 +368,7 @@
     dest_db->Submit();
     item_index = 0;
   }
-  auto *flag_db = inst->Destination(1)->AllocateDataBuffer();
+  auto* flag_db = inst->Destination(1)->AllocateDataBuffer();
   flag_db->Set<uint32_t>(0, fflags);
   flag_db->Submit();
   rv_vector->clear_vstart();
@@ -378,7 +379,7 @@
 // narrowing operations.
 template <typename Vd, typename Vs2, typename Vs1>
 void RiscVMaskBinaryVectorOp(
-    RiscVVectorState *rv_vector, const Instruction *inst,
+    RiscVVectorState* rv_vector, const Instruction* inst,
     std::function<std::optional<Vd>(Vs2, Vs1, bool)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
@@ -400,8 +401,8 @@
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -411,7 +412,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
   // the operation.
@@ -425,7 +426,7 @@
   for (int reg = start_reg;
        !exception && (reg < max_regs) && (vector_index < num_elements); reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -464,7 +465,7 @@
 // operations. It implements all the checking necessary for both widening and
 // narrowing operations.
 template <typename Vd, typename Vs2, typename Vs1>
-void RiscVBinaryVectorOp(RiscVVectorState *rv_vector, const Instruction *inst,
+void RiscVBinaryVectorOp(RiscVVectorState* rv_vector, const Instruction* inst,
                          std::function<Vd(Vs2, Vs1)> op) {
   RiscVMaskBinaryVectorOp<Vd, Vs2, Vs1>(
       rv_vector, inst,
@@ -478,7 +479,7 @@
 
 template <typename Vd, typename Vs2, typename Vs1>
 void RiscVBinaryVectorOpWithFflags(
-    RiscVVectorState *rv_vector, const Instruction *inst,
+    RiscVVectorState* rv_vector, const Instruction* inst,
     std::function<std::tuple<Vd, uint32_t>(Vs2, Vs1)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
@@ -500,8 +501,8 @@
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -511,7 +512,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
   // the operation.
@@ -526,7 +527,7 @@
   for (int reg = start_reg;
        !exception && (reg < max_regs) && (vector_index < num_elements); reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -556,7 +557,7 @@
     dest_db->Submit();
     item_index = 0;
   }
-  auto *flag_db = inst->Destination(1)->AllocateDataBuffer();
+  auto* flag_db = inst->Destination(1)->AllocateDataBuffer();
   flag_db->Set<uint32_t>(0, fflags);
   flag_db->Submit();
   rv_vector->clear_vstart();
@@ -566,7 +567,7 @@
 // implements all the checking necessary for both widening and narrowing
 // operations.
 template <typename Vd, typename Vs2, typename Vs1>
-void RiscVTernaryVectorOp(RiscVVectorState *rv_vector, const Instruction *inst,
+void RiscVTernaryVectorOp(RiscVVectorState* rv_vector, const Instruction* inst,
                           std::function<Vd(Vs2, Vs1, Vd)> op) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
@@ -588,8 +589,8 @@
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = (num_elements + elements_per_vector - 1) / elements_per_vector;
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -599,7 +600,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(3));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(3));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute where to start
   // the operation.
@@ -612,7 +613,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -643,8 +644,8 @@
 // masking) from Vs2 and apply the reduction operation to produce a single
 // element that is written to Vd[0].
 template <typename Vd, typename Vs2, typename Vs1>
-void RiscVBinaryReductionVectorOp(RiscVVectorState *rv_vector,
-                                  const Instruction *inst,
+void RiscVBinaryReductionVectorOp(RiscVVectorState* rv_vector,
+                                  const Instruction* inst,
                                   std::function<Vd(Vd, Vs2)> op) {
   if (rv_vector->vector_exception()) return;
   if (rv_vector->vstart()) {
@@ -668,7 +669,7 @@
   }
   int num_elements = rv_vector->vector_length();
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   Vd accumulator =
       static_cast<Vd>(generic::GetInstructionSource<Vs1>(inst, 1, 0));
@@ -681,8 +682,8 @@
           op(accumulator, generic::GetInstructionSource<Vs2>(inst, 0, i));
     }
   }
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   auto dest_db = dest_op->CopyDataBuffer();
   dest_db->Set<Vd>(0, accumulator);
   dest_db->Submit();
@@ -722,7 +723,7 @@
 }
 
 template <typename T>
-T RoundOff(RiscVVectorState *rv_vector, T value, int size) {
+T RoundOff(RiscVVectorState* rv_vector, T value, int size) {
   auto rm = rv_vector->vxrm();
   auto ret = (value >> size) + GetRoundingBit<T>(rm, value, size + 1);
   return ret;
diff --git a/riscv/riscv_vector_memory_instructions.cc b/riscv/riscv_vector_memory_instructions.cc
index 48f9d52..29a1d2b 100644
--- a/riscv/riscv_vector_memory_instructions.cc
+++ b/riscv/riscv_vector_memory_instructions.cc
@@ -36,9 +36,9 @@
 // writes the loaded data into the registers.
 template <typename T>
 absl::Status WriteBackLoadData(int vector_register_byte_length,
-                               const Instruction *inst) {
+                               const Instruction* inst) {
   // Get values from context.
-  auto *context = static_cast<VectorLoadContext *>(inst->context());
+  auto* context = static_cast<VectorLoadContext*>(inst->context());
   auto masks = context->mask_db->Get<bool>();
   auto values = context->value_db->Get<T>();
   int vector_start = context->vstart;
@@ -49,8 +49,8 @@
   int max_regs =
       (vector_length + elements_per_vector - 1) / elements_per_vector;
   // Verify that the dest_op has enough registers. Else signal error.
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   if (dest_op->size() < max_regs) {
     // TODO: signal error.
     return absl::InternalError("Not enough registers in destination operand");
@@ -70,7 +70,7 @@
   // Iterate over the number of registers to write.
   for (int reg = start_reg; (reg < max_regs) && (value_count > 0); reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<T>();
     // Write data into register subject to masking.
     int count = std::min(elements_per_vector - item_index, value_count);
@@ -91,11 +91,11 @@
 // writes the loaded data into the registers.
 template <typename T>
 absl::Status WriteBackSegmentLoadData(int vector_register_byte_length,
-                                      const Instruction *inst) {
+                                      const Instruction* inst) {
   // The number of fields in each segment.
   int num_fields = GetInstructionSource<uint32_t>(inst, 0) + 1;
   // Get values from context.
-  auto *context = static_cast<VectorLoadContext *>(inst->context());
+  auto* context = static_cast<VectorLoadContext*>(inst->context());
   auto masks = context->mask_db->Get<bool>();
   auto values = context->value_db->Get<T>();
   int start_segment = context->vstart;
@@ -111,8 +111,8 @@
   // Total number of registers written.
   int total_regs = num_fields * num_regs;
   // Verify that the dest_op has enough registers. Else signal error.
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   if (dest_op->size() < total_regs) {
     return absl::InternalError("Not enough registers in destination operand");
   }
@@ -131,7 +131,7 @@
     int offset = start_segment % max_elements_per_vector;
     int remaining_data = num_segments;
     for (int reg = start_reg; reg < start_reg + num_regs; reg++) {
-      auto *dest_db = dest_op->CopyDataBuffer(reg);
+      auto* dest_db = dest_op->CopyDataBuffer(reg);
       auto span = dest_db->Get<T>();
       int max_entry =
           std::min(remaining_data + offset, max_elements_per_vector);
@@ -152,9 +152,9 @@
 // This models the vsetvl set of instructions. The immediate versus register
 // versions are all modeled by the same function. Flags are bound during decode
 // to the two first parameters to specify if rd or rs1 are x0.
-void Vsetvl(bool rd_zero, bool rs1_zero, const Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vsetvl(bool rd_zero, bool rs1_zero, const Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   uint32_t vtype = GetInstructionSource<uint32_t>(inst, 1) & 0b1'1'111'111;
   // Get previous vtype.
   uint32_t prev_vtype = rv_vector->vtype();
@@ -195,7 +195,7 @@
   }
   rv_vector->set_vector_length(vl);
   if (!rd_zero) {  // Update register if there is a writable destination.
-    auto *reg = static_cast<generic::RegisterDestinationOperand<uint32_t> *>(
+    auto* reg = static_cast<generic::RegisterDestinationOperand<uint32_t>*>(
                     inst->Destination(0))
                     ->GetRegister();
     if (rv_state->xlen() == RiscVXlen::RV32) {
@@ -213,8 +213,8 @@
 // Source(1): stride size bytes.
 // Source(2): vector mask register, vector constant {1..} if not masked.
 // Destination(0): vector destination register.
-void VlStrided(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlStrided(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
   int64_t stride = GetInstructionSource<int64_t>(inst, 1);
@@ -231,18 +231,18 @@
   int num_elements_loaded = num_elements - start;
 
   // Allocate address data buffer.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements_loaded);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements_loaded);
 
   // Allocate the value data buffer that the loaded data is returned in.
-  auto *value_db = db_factory->Allocate(num_elements_loaded * element_width);
+  auto* value_db = db_factory->Allocate(num_elements_loaded * element_width);
 
   // Get the source mask (stored in a single vector register).
-  auto *src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
 
   // Allocate a byte mask data buffer for the load.
-  auto *mask_db = db_factory->Allocate<bool>(num_elements_loaded);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements_loaded);
 
   // Get the spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
@@ -259,9 +259,9 @@
   }
 
   // Set up the context, and submit the load.
-  auto *context = new VectorLoadContext(value_db, mask_db, element_width, start,
+  auto* context = new VectorLoadContext(value_db, mask_db, element_width, start,
                                         rv_vector->vector_length());
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   value_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width, value_db,
                          inst->child(), context);
@@ -275,20 +275,20 @@
 
 // Source(0): base address.
 // Destination(0): vector destination register (for the child instruction).
-void Vlm(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vlm(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   // Compute base address.
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0) + start;
   // Compute the number of bytes to be loaded.
   int num_bytes = rv_vector->vector_register_byte_length() - start;
   // Allocate address data buffer.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_bytes);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_bytes);
   // Allocate the value data buffer that the loaded data is returned in.
-  auto *value_db = db_factory->Allocate<uint8_t>(num_bytes);
+  auto* value_db = db_factory->Allocate<uint8_t>(num_bytes);
   // Allocate a byte mask data buffer.
-  auto *mask_db = db_factory->Allocate<bool>(num_bytes);
+  auto* mask_db = db_factory->Allocate<bool>(num_bytes);
   // Get the spans for addresses and masks.
   auto masks = mask_db->Get<bool>();
   auto addresses = address_db->Get<uint64_t>();
@@ -298,10 +298,10 @@
     masks[i - start] = true;
   }
   // Set up the context, and submit the load.
-  auto *context =
+  auto* context =
       new VectorLoadContext(value_db, mask_db, sizeof(uint8_t), start,
                             rv_vector->vector_register_byte_length());
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   value_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, sizeof(uint8_t), value_db,
                          inst->child(), context);
@@ -322,13 +322,13 @@
 // Source(1) index vector.
 // Source(2) masks.
 // Destination(0): vector destination register (for the child instruction).
-void VlIndexed(int index_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlIndexed(int index_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   int element_width = rv_vector->selected_element_width();
   int lmul = rv_vector->vector_length_multiplier();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
-  auto *index_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto* index_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   int index_emul = index_width * lmul / element_width;
   // Validate that emul has a legal value.
   if ((index_emul > 64) || (index_emul == 0)) {
@@ -345,19 +345,19 @@
   int num_bytes_loaded = num_elements_loaded * element_width;
 
   // Allocate address data buffer.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements_loaded);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements_loaded);
   auto addresses = address_db->Get<uint64_t>();
 
   // Allocate the value data buffer that the loaded data is returned in.
-  auto *value_db = db_factory->Allocate(num_bytes_loaded);
+  auto* value_db = db_factory->Allocate(num_bytes_loaded);
 
   // Get the source mask (stored in a single vector register).
-  auto *src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
 
   // Allocate a byte mask data buffer for the load.
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   auto masks = mask_db->Get<bool>();
 
   // Convert the bit masks to byte masks and compute the element addresses.
@@ -390,9 +390,9 @@
   }
 
   // Set up context and submit load.
-  auto *context = new VectorLoadContext(value_db, mask_db, element_width, start,
+  auto* context = new VectorLoadContext(value_db, mask_db, element_width, start,
                                         rv_vector->vector_length());
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   value_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width, value_db,
                          inst->child(), context);
@@ -409,17 +409,17 @@
 // Source(0): base address.
 // Destination(0): vector destination register (for the child instruction).
 void VlRegister(int num_regs, int element_width_bytes,
-                const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+                const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   // Get base address.
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
   int num_elements =
       rv_vector->vector_register_byte_length() * num_regs / element_width_bytes;
   // Allocate data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width_bytes);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width_bytes);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -436,9 +436,9 @@
   }
 
   // Set up context and submit load.
-  auto *context = new VectorLoadContext(data_db, mask_db, element_width_bytes,
+  auto* context = new VectorLoadContext(data_db, mask_db, element_width_bytes,
                                         0, num_elements);
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   data_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width_bytes,
                          data_db, inst->child(), context);
@@ -458,11 +458,11 @@
 // Source(1): mask
 // Source(2): number of fields - 1
 // Destination(0): vector destination register (for the child instruction).
-void VlSegment(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlSegment(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 2) + 1;
   // Effective vector length multiplier.
@@ -479,10 +479,10 @@
   int segment_stride = num_fields * element_width;
   int num_elements = num_fields * num_segments;
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -497,9 +497,9 @@
           base + i * segment_stride + field * element_width;
     }
   }
-  auto *context = new VectorLoadContext(data_db, mask_db, element_width, start,
+  auto* context = new VectorLoadContext(data_db, mask_db, element_width, start,
                                         num_segments);
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   data_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width, data_db,
                          inst->child(), context);
@@ -516,12 +516,12 @@
 // Source(2): mask
 // Source(3): number of fields - 1
 // Destination(0): vector destination register (for the child instruction).
-void VlSegmentStrided(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlSegmentStrided(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
   int64_t segment_stride = GetInstructionSource<int64_t>(inst, 1);
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 3) + 1;
   // Effective vector length multiplier.
@@ -537,10 +537,10 @@
   int num_segments = rv_vector->vector_length();
   int num_elements = num_fields * num_segments;
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get the spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -555,9 +555,9 @@
     }
   }
   // Allocate the context and submit the load.
-  auto *context = new VectorLoadContext(data_db, mask_db, element_width, start,
+  auto* context = new VectorLoadContext(data_db, mask_db, element_width, start,
                                         num_segments);
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   data_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width, data_db,
                          inst->child(), context);
@@ -575,12 +575,12 @@
 // Source(2): mask
 // Source(3): number of fields - 1
 // Destination(0): vector destination register (for the child instruction).
-void VlSegmentIndexed(int index_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlSegmentIndexed(int index_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 0);
-  auto *index_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* index_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 3) + 1;
   int element_width = rv_vector->selected_element_width();
@@ -607,10 +607,10 @@
   int num_elements = num_fields * num_segments;
 
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get the spans for the addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -647,9 +647,9 @@
       addresses[field * num_segments + i] = base + offset + field;
     }
   }
-  auto *context = new VectorLoadContext(data_db, mask_db, element_width, start,
+  auto* context = new VectorLoadContext(data_db, mask_db, element_width, start,
                                         num_segments);
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   data_db->set_latency(0);
   rv32_state->LoadMemory(inst, address_db, mask_db, element_width, data_db,
                          inst->child(), context);
@@ -662,11 +662,11 @@
 // Child instruction used for non-segment vector loads. This function really
 // only is used to select a type specific version of the helper function to
 // write back the load data.
-void VlChild(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlChild(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   absl::Status status;
   int byte_length = rv_vector->vector_register_byte_length();
-  switch (static_cast<VectorLoadContext *>(inst->context())->element_width) {
+  switch (static_cast<VectorLoadContext*>(inst->context())->element_width) {
     case 1:
       status = WriteBackLoadData<uint8_t>(byte_length, inst);
       break;
@@ -692,11 +692,11 @@
 // Child instruction used for segmen vector loads. This function really only is
 // used to select a type specific version of the helper function to write back
 // the load data.
-void VlSegmentChild(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VlSegmentChild(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   absl::Status status;
   int byte_length = rv_vector->vector_register_byte_length();
-  switch (static_cast<VectorLoadContext *>(inst->context())->element_width) {
+  switch (static_cast<VectorLoadContext*>(inst->context())->element_width) {
     case 1:
       status = WriteBackSegmentLoadData<uint8_t>(byte_length, inst);
       break;
@@ -722,20 +722,20 @@
 // Templated helper function for vector stores.
 template <typename T>
 void StoreVectorStrided(int vector_length, int vstart, int emul,
-                        const Instruction *inst) {
+                        const Instruction* inst) {
   uint64_t base = GetInstructionSource<uint64_t>(inst, 1);
   int64_t stride = GetInstructionSource<int64_t>(inst, 2);
-  auto *src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(3));
+  auto* src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(3));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
 
   // Compute total number of elements to be stored.
   int num_elements = vector_length;
   // Allocate data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
   auto addresses = address_db->Get<uint64_t>();
-  auto *store_data_db = db_factory->Allocate(num_elements * sizeof(T));
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* store_data_db = db_factory->Allocate(num_elements * sizeof(T));
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
 
   // Get the spans for addresses and masks.
   auto store_data = store_data_db->Get<T>();
@@ -750,7 +750,7 @@
     store_data[i - vstart] = GetInstructionSource<T>(inst, 0, i);
   }
   // Perform the store.
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, sizeof(T), store_data_db);
   address_db->DecRef();
   mask_db->DecRef();
@@ -762,8 +762,8 @@
 // Source(1): base address.
 // Source(2): stride.
 // Source(3): vector mask register, vector constant {1..} if not masked.
-void VsStrided(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsStrided(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int emul = element_width * rv_vector->vector_length_multiplier() /
              rv_vector->selected_element_width();
   // Validate that emul has a legal value.
@@ -797,8 +797,8 @@
 // Store vector mask. Single vector register store.
 // Source(0): store data
 // Source(1): base address
-void Vsm(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsm(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   // Compute base address.
   int start = rv_vector->vstart();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 1);
@@ -806,10 +806,10 @@
   int num_bytes = rv_vector->vector_register_byte_length();
   int num_bytes_stored = num_bytes - start;
   // Allocate address data buffer.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_bytes_stored);
-  auto *store_data_db = db_factory->Allocate(num_bytes_stored);
-  auto *mask_db = db_factory->Allocate<uint8_t>(num_bytes_stored);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_bytes_stored);
+  auto* store_data_db = db_factory->Allocate(num_bytes_stored);
+  auto* mask_db = db_factory->Allocate<uint8_t>(num_bytes_stored);
   // Get the spans for addresses, masks, and store data.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -820,7 +820,7 @@
     masks[i - start] = true;
     store_data[i - start] = GetInstructionSource<uint8_t>(inst, 0, i);
   }
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, sizeof(uint8_t),
                           store_data_db);
   address_db->DecRef();
@@ -839,8 +839,8 @@
 // Source(1): base address.
 // Source(2): offset vector.
 // Source(3): mask.
-void VsIndexed(int index_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsIndexed(int index_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   // Compute base address.
   int start = rv_vector->vstart();
   int num_elements = rv_vector->vector_length() - start;
@@ -855,16 +855,16 @@
   }
 
   uint64_t base = GetInstructionSource<uint64_t>(inst, 1);
-  auto *index_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* index_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
 
   // Allocate data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *value_db = db_factory->Allocate(num_elements * element_width);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* value_db = db_factory->Allocate(num_elements * element_width);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
 
   // Get the source mask (stored in a single vector register).
-  auto *src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(3));
+  auto* src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(3));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
 
   // Get the spans for addresses, masks, and data.
@@ -919,7 +919,7 @@
   }
 
   // Set up context and submit store
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, element_width, value_db);
   address_db->DecRef();
   mask_db->DecRef();
@@ -927,16 +927,16 @@
   rv_vector->clear_vstart();
 }
 
-void VsRegister(int num_regs, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsRegister(int num_regs, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   uint64_t base = GetInstructionSource<uint64_t>(inst, 1);
   int num_elements =
       rv_vector->vector_register_byte_length() * num_regs / sizeof(uint64_t);
   // Allocate data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get the address, mask, and data spans.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -946,7 +946,7 @@
     masks[i] = true;
     data[i] = GetInstructionSource<uint64_t>(inst, 0, i);
   }  // Submit store.
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, sizeof(uint64_t), data_db);
   address_db->DecRef();
   mask_db->DecRef();
@@ -956,11 +956,11 @@
 
 // Vector store segment (unit stride). This stores the segments contiguously
 // in memory in a sequential manner.
-void VsSegment(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsSegment(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base_address = GetInstructionSource<uint64_t>(inst, 1);
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 3) + 1;
   // Effective vector length multiplier.
@@ -980,10 +980,10 @@
       rv_vector->vector_register_byte_length() / element_width;
   int reg_mul = std::max(1, emul / 8);
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -992,7 +992,7 @@
   auto data4 = data_db->Get<uint32_t>();
   auto data8 = data_db->Get<uint64_t>();
 
-  auto *data_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto* data_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   uint64_t address = base_address;
   int count = 0;
   for (int segment = start; segment < num_segments; segment++) {
@@ -1016,7 +1016,7 @@
         continue;
       }
       // Write store data from register db to data db.
-      auto *reg_db = data_op->GetRegister(reg_no)->data_buffer();
+      auto* reg_db = data_op->GetRegister(reg_no)->data_buffer();
       switch (element_width) {
         case 1:
           data1[count] = reg_db->Get<uint8_t>(segment % num_elements_per_reg);
@@ -1036,7 +1036,7 @@
       count++;
     }
   }
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, element_width, data_db);
   // Release the dbs.
   address_db->DecRef();
@@ -1047,12 +1047,12 @@
 
 // Vector strided segment store. This stores each segment contiguously at
 // locations separated by the segment stride.
-void VsSegmentStrided(int element_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsSegmentStrided(int element_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base_address = GetInstructionSource<uint64_t>(inst, 1);
   int64_t segment_stride = GetInstructionSource<int64_t>(inst, 2);
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(3));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(3));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 4) + 1;
   // Effective vector length multiplier.
@@ -1072,10 +1072,10 @@
       rv_vector->vector_register_byte_length() / element_width;
   int reg_mul = std::max(1, emul / 8);
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -1084,7 +1084,7 @@
   auto data4 = data_db->Get<uint32_t>();
   auto data8 = data_db->Get<uint64_t>();
 
-  auto *data_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto* data_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   uint64_t segment_address = base_address;
   int count = 0;
   for (int segment = start; segment < num_segments; segment++) {
@@ -1109,7 +1109,7 @@
         continue;
       }
       // Write store data from register db to data db.
-      auto *reg_db = data_op->GetRegister(reg_no)->data_buffer();
+      auto* reg_db = data_op->GetRegister(reg_no)->data_buffer();
       switch (element_width) {
         case 1:
           data1[count] = reg_db->Get<uint8_t>(segment % num_elements_per_reg);
@@ -1130,7 +1130,7 @@
     }
     segment_address += segment_stride;
   }
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, element_width, data_db);
   // Release the dbs.
   address_db->DecRef();
@@ -1142,11 +1142,11 @@
 // Vector indexted segment store. This instruction stores each segment
 // contiguously at an address formed by adding the index value for that
 // segment (from the index vector source operand) to the base address.
-void VsSegmentIndexed(int index_width, const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VsSegmentIndexed(int index_width, const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int start = rv_vector->vstart();
   uint64_t base_address = GetInstructionSource<uint64_t>(inst, 1);
-  auto src_mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(3));
+  auto src_mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(3));
   auto src_masks = src_mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   int num_fields = GetInstructionSource<int32_t>(inst, 4) + 1;
   int element_width = rv_vector->selected_element_width();
@@ -1175,10 +1175,10 @@
       rv_vector->vector_register_byte_length() / element_width;
   int reg_mul = std::max(1, lmul / 8);
   // Set up data buffers.
-  auto *db_factory = inst->state()->db_factory();
-  auto *data_db = db_factory->Allocate(num_elements * element_width);
-  auto *address_db = db_factory->Allocate<uint64_t>(num_elements);
-  auto *mask_db = db_factory->Allocate<bool>(num_elements);
+  auto* db_factory = inst->state()->db_factory();
+  auto* data_db = db_factory->Allocate(num_elements * element_width);
+  auto* address_db = db_factory->Allocate<uint64_t>(num_elements);
+  auto* mask_db = db_factory->Allocate<bool>(num_elements);
   // Get spans for addresses and masks.
   auto addresses = address_db->Get<uint64_t>();
   auto masks = mask_db->Get<bool>();
@@ -1187,7 +1187,7 @@
   auto data4 = data_db->Get<uint32_t>();
   auto data8 = data_db->Get<uint64_t>();
 
-  auto *data_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto* data_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   int count = 0;
   for (int segment = start; segment < num_segments; segment++) {
     // Masks are applied on a segment basis.
@@ -1230,7 +1230,7 @@
         continue;
       }
       // Write store data from register db to data db.
-      auto *reg_db = data_op->GetRegister(reg_no)->data_buffer();
+      auto* reg_db = data_op->GetRegister(reg_no)->data_buffer();
       switch (element_width) {
         case 1:
           data1[count] = reg_db->Get<uint8_t>(segment % num_elements_per_reg);
@@ -1251,7 +1251,7 @@
       count++;
     }
   }
-  auto *rv32_state = static_cast<RiscVState *>(inst->state());
+  auto* rv32_state = static_cast<RiscVState*>(inst->state());
   rv32_state->StoreMemory(inst, address_db, mask_db, element_width, data_db);
   // Release the dbs.
   address_db->DecRef();
diff --git a/riscv/riscv_vector_memory_instructions.h b/riscv/riscv_vector_memory_instructions.h
index 2de7f1d..0479693 100644
--- a/riscv/riscv_vector_memory_instructions.h
+++ b/riscv/riscv_vector_memory_instructions.h
@@ -31,7 +31,7 @@
 // The instruction takes 2 instruction source scalar operands: source operand 0
 // is the requested vector length, source operand 1 is the requested vector
 // configuration value. The destination operand is a scalar.
-void Vsetvl(bool rd_zero, bool rs1_zero, const Instruction *inst);
+void Vsetvl(bool rd_zero, bool rs1_zero, const Instruction* inst);
 
 // Vector load semantic functions.
 // Load with constant stride, the parameter specifies the width of the vector
@@ -40,40 +40,40 @@
 // source operand 2 is the vector mask (either a vector register, or a
 // constant). Destination operand 0 is assigned to the child instruction and
 // is a vector register (group).
-void VlStrided(int element_width, const Instruction *inst);
+void VlStrided(int element_width, const Instruction* inst);
 // Load vector mask. This instruction takes 1 source and 1 destination operand.
 // The source operand is a scalar base address, the destination operand is the
 // vector register to write the mask to.
-void Vlm(const Instruction *inst);
+void Vlm(const Instruction* inst);
 // Indexed vector load (ordered and unordered). This instruction takes 3 source
 // and 1 destination operands. Source operand 0 is a scalar base address, source
 // operand 1 is a vector register (group) of indices, source operand 2 is the
 // vector mask. Destination operand 0 is assigned to the child instruction and
 // is a vector register (group).
-void VlIndexed(int index_width, const Instruction *inst);
+void VlIndexed(int index_width, const Instruction* inst);
 // Load vector register(s). Takes a parameter specifying how many registers to
 // load. This instruction takes 1 source and 1 destination operand. Source
 // operand 0 is a scalar base address. Destination operand 0 is assigned to the
 // child instruction and is a vector register (group).
-void VlRegister(int num_regs, int element_width_bytes, const Instruction *inst);
+void VlRegister(int num_regs, int element_width_bytes, const Instruction* inst);
 // Child instruction semantic functions for non-segment loads responsible for
 // writing load data back to the target register(s). It takes a single
 // destination operand. Destination operand 0 is a vector register (group).
-void VlChild(const Instruction *inst);
+void VlChild(const Instruction* inst);
 // Load segment, unit stride. The function takes one parameter that specifies
 // the element width. The instruction takes 3 source operands and 1 destination
 // operand. Source operand 0 is a scalar base address, source operand 1 is
 // the vector mask, and source operand 2 is the number of fields - 1.
 // Destination operand 0 is assigned to the child instruction and is a vector
 // register (group).
-void VlSegment(int element_width, const Instruction *inst);
+void VlSegment(int element_width, const Instruction* inst);
 // Load segment strided. The function takes one parameter that specifies
 // the element width. The instruction takes 4 source operands and 1 destination
 // operand. Source operand 0 is a scalar base address, source operand 1 is a
 // scalar stride, source operand 2 is the vector mask, and source operand 3 is
 // the number of fields - 1. Destination operand 0 is assigned to the child
 // instruction and is a vector register (group).
-void VlSegmentStrided(int element_width, const Instruction *inst);
+void VlSegmentStrided(int element_width, const Instruction* inst);
 // Load segment indexed. The function takes one parameter that specifies
 // the index element width. The instruction takes 4 source operands and 1
 // destination operand. Source operand 0 is a scalar base address, source
@@ -81,11 +81,11 @@
 // vector mask, and source operand 3 is the number of fields - 1. Destination
 // operand 0 is assigned to the child instruction and is a vector register
 // (group).
-void VlSegmentIndexed(int index_width, const Instruction *inst);
+void VlSegmentIndexed(int index_width, const Instruction* inst);
 // Child instruction semantic functions for segment loads responsible for
 // writing load data back to the target register(s). It takes a single
 // destination operand. Destination operand 0 is a vector register (group).
-void VlSegmentChild(int element_width, const Instruction *inst);
+void VlSegmentChild(int element_width, const Instruction* inst);
 
 // Vector store semantic functions.
 
@@ -93,39 +93,39 @@
 // width. The instruction takes 4 source parameters. Source 0 is the store data
 // vector register (group), source 1 is the scalar base address, source 2 is the
 // stride, and source 3 is the vector mask.
-void VsStrided(int element_width, const Instruction *inst);
+void VsStrided(int element_width, const Instruction* inst);
 // Store vector mask. This instruction takes 2 source operands. Source 0 is the
 // vector mask register to be stored, the second is the scalar base address.
-void Vsm(const Instruction *inst);
+void Vsm(const Instruction* inst);
 // Store indexed. The function takes one parameter that specifies the element
 // width. The instruction takes 4 source parameters. Source 0 is the store data
 // vector register (group), source 1 is a vector (group) of indices, source 2 is
 // the stride, and source 3 is the vector mask.
-void VsIndexed(int index_width, const Instruction *inst);
+void VsIndexed(int index_width, const Instruction* inst);
 // Store vector register (group). This function takes one parameter that
 // specifies the number of registers to store. The instruction takes 2 source
 // operands. Source 0 is the source vector register (group), the second is the
 // scalar base address.
-void VsRegister(int num_regs, const Instruction *inst);
+void VsRegister(int num_regs, const Instruction* inst);
 // Store segment, unit stride. The function takes one parameter that specifies
 // the element width. The instruction takes 4 source operands. Source operand 0
 // is the store data, source operand 1 is the scalar base address, source
 // operand 2 is the vector mask, and source operand 3 is the number of fields
 // - 1.
-void VsSegment(int element_width, const Instruction *inst);
+void VsSegment(int element_width, const Instruction* inst);
 // Store segment, unit stride. The function takes one parameter that specifies
 // the element width. The instruction takes 5 source operands. Source operand 0
 // is the store data, source operand 1 is the scalar base address, source
 // operand 2 is the segment stride, source operand 3 is the vector mask, and
 // source operand 4 is the number of fields
 // - 1.
-void VsSegmentStrided(int element_width, const Instruction *inst);
+void VsSegmentStrided(int element_width, const Instruction* inst);
 // Load segment indexed. The function takes one parameter that specifies
 // the index element width. The instruction takes 5 source operands. Source
 // operand 0 is the store data, source operand 1 is a scalar base address,
 // source operand 2 is a vector register (group) of indices, source operand 3 is
 // the vector mask, and source operand 4 is the number of fields - 1.
-void VsSegmentIndexed(int index_width, const Instruction *inst);
+void VsSegmentIndexed(int index_width, const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_opi_instructions.cc b/riscv/riscv_vector_opi_instructions.cc
index 5a9bdc9..692356e 100644
--- a/riscv/riscv_vector_opi_instructions.cc
+++ b/riscv/riscv_vector_opi_instructions.cc
@@ -21,7 +21,6 @@
 #include <type_traits>
 
 #include "absl/log/log.h"
-#include "mpact/sim/generic/instruction.h"
 #include "mpact/sim/generic/type_helpers.h"
 #include "riscv/riscv_register.h"
 #include "riscv/riscv_state.h"
@@ -44,8 +43,8 @@
 // Vector arithmetic operations.
 
 // Vector add.
-void Vadd(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vadd(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -72,8 +71,8 @@
 }
 
 // Vector subtract.
-void Vsub(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsub(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -100,8 +99,8 @@
 }
 
 // Vector reverse subtract.
-void Vrsub(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrsub(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -130,8 +129,8 @@
 // Vector logical operations.
 
 // Vector and.
-void Vand(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vand(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -158,8 +157,8 @@
 }
 
 // Vector or.
-void Vor(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vor(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -186,8 +185,8 @@
 }
 
 // Vector xor.
-void Vxor(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vxor(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -216,8 +215,8 @@
 // Vector shift operations.
 
 // Vector shift left logical.
-void Vsll(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsll(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -248,8 +247,8 @@
 }
 
 // Vector shift right logical.
-void Vsrl(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsrl(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -280,8 +279,8 @@
 }
 
 // Vector shift right arithmetic.
-void Vsra(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsra(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -315,8 +314,8 @@
 
 // Vector narrowing shift right logical. Source op 0 is shifted right
 // by source op 1 and the result is 1/2 the size of source op 0.
-void Vnsrl(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnsrl(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -349,8 +348,8 @@
 
 // Vector narrowing shift right arithmetic. Source op 0 is shifted right
 // by source op 1 and the result is 1/2 the size of source op 0.
-void Vnsra(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnsra(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // If the vector length multiplier (x8) is greater than 32, that means that
   // the source values (sew * 2) would exceed the available register group.
@@ -385,8 +384,8 @@
 }
 
 // Vector unsigned min.
-void Vminu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vminu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -417,8 +416,8 @@
 }
 
 // Vector signed min.
-void Vmin(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmin(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -448,8 +447,8 @@
 }
 
 // Vector unsigned max.
-void Vmaxu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmaxu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -480,8 +479,8 @@
 }
 
 // Vector signed max.
-void Vmax(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmax(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -511,8 +510,8 @@
 }
 
 // Set equal.
-void Vmseq(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmseq(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -541,8 +540,8 @@
 // Vector compare instructions.
 
 // Set not equal.
-void Vmsne(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsne(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -569,8 +568,8 @@
 }
 
 // Set less than unsigned.
-void Vmsltu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsltu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -597,8 +596,8 @@
 }
 
 // Set less than.
-void Vmslt(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmslt(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -625,8 +624,8 @@
 }
 
 // Set less than or equal unsigned.
-void Vmsleu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsleu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -653,8 +652,8 @@
 }
 
 // Set less than or equal.
-void Vmsle(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsle(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -681,8 +680,8 @@
 }
 
 // Set greater than unsigned.
-void Vmsgtu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsgtu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -709,8 +708,8 @@
 }
 
 // Set greater than.
-void Vmsgt(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsgt(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -737,8 +736,8 @@
 }
 
 // Saturated unsigned addition.
-void Vsaddu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsaddu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -792,7 +791,7 @@
 // Uses unsigned arithmetic for the addition to avoid signed overflow, which,
 // when compiled with --config=asan, will trigger an exception.
 template <typename T>
-inline T VsaddHelper(T vs2, T vs1, RiscVVectorState *rv_vector) {
+inline T VsaddHelper(T vs2, T vs1, RiscVVectorState* rv_vector) {
   using UT = typename std::make_unsigned<T>::type;
   UT uvs2 = static_cast<UT>(vs2);
   UT uvs1 = static_cast<UT>(vs1);
@@ -806,8 +805,8 @@
 }
 
 // Saturated signed addition.
-void Vsadd(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsadd(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -838,8 +837,8 @@
 }
 
 // Saturated unsigned subtract.
-void Vssubu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vssubu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -890,7 +889,7 @@
 }
 
 template <typename T>
-T VssubHelper(T vs2, T vs1, RiscVVectorState *rv_vector) {
+T VssubHelper(T vs2, T vs1, RiscVVectorState* rv_vector) {
   using UT = typename std::make_unsigned<T>::type;
   UT uvs2 = static_cast<UT>(vs2);
   UT uvs1 = static_cast<UT>(vs1);
@@ -904,8 +903,8 @@
 }
 
 // Saturated signed subtract.
-void Vssub(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vssub(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -936,8 +935,8 @@
 }
 
 // Add/Subtract with carry, carry generation.
-void Vadc(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vadc(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -971,8 +970,8 @@
 }
 
 // Add with carry - carry generation.
-void Vmadc(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmadc(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1024,8 +1023,8 @@
 }
 
 // Subtract with borrow.
-void Vsbc(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsbc(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1059,8 +1058,8 @@
 }
 
 // Subtract with borrow - borrow generation.
-void Vmsbc(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsbc(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1096,8 +1095,8 @@
 }
 
 // Vector merge.
-void Vmerge(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmerge(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1131,13 +1130,13 @@
 }
 
 // Vector move register(s).
-void Vmvr(int num_regs, Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmvr(int num_regs, Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vector_exception()) return;
 
-  auto *src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   if (src_op->size() < num_regs) {
     LOG(ERROR) << "Vmvr: source operand has fewer registers than requested";
     rv_vector->set_vector_exception();
@@ -1154,8 +1153,8 @@
   int vstart = rv_vector->vstart();
   int start_reg = vstart / num_elements_per_vector;
   for (int i = start_reg; i < num_regs; i++) {
-    auto *src_db = src_op->GetRegister(i)->data_buffer();
-    auto *dest_db = dest_op->AllocateDataBuffer(i);
+    auto* src_db = src_op->GetRegister(i)->data_buffer();
+    auto* dest_db = dest_op->AllocateDataBuffer(i);
     std::memcpy(dest_db->raw_ptr(), src_db->raw_ptr(),
                 dest_db->size<uint8_t>());
     dest_db->Submit();
@@ -1165,7 +1164,7 @@
 
 // Templated helper function for shift right with rounding.
 template <typename T>
-T VssrHelper(RiscVVectorState *rv_vector, T vs2, T vs1) {
+T VssrHelper(RiscVVectorState* rv_vector, T vs2, T vs1) {
   using UT = typename MakeUnsigned<T>::type;
   int rm = rv_vector->vxrm();
   int max_shift = (sizeof(T) << 3) - 1;
@@ -1183,8 +1182,8 @@
 }
 
 // Logical shift right with rounding.
-void Vssrl(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vssrl(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1215,8 +1214,8 @@
 }
 
 // Arithmetic shift right with rounding.
-void Vssra(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vssra(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -1248,7 +1247,7 @@
 
 // Templated helper function for shift right with rounding and saturation.
 template <typename DT, typename WT, typename T>
-T VnclipHelper(RiscVVectorState *rv_vector, WT vs2, T vs1) {
+T VnclipHelper(RiscVVectorState* rv_vector, WT vs2, T vs1) {
   using WUT = typename std::make_unsigned<WT>::type;
   int rm = rv_vector->vxrm();
   int max_shift = (sizeof(WT) << 3) - 1;
@@ -1276,8 +1275,8 @@
 
 // Arithmetic shift right and narrowing from 2*sew to sew with rounding and
 // signed saturation.
-void Vnclip(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnclip(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int lmul8 = rv_vector->vector_length_multiplier();
   // This is a narrowing operation and sew is that of the narrow data type.
   // Thus if lmul > 32, then emul for the wider data type is illegal.
@@ -1314,8 +1313,8 @@
 
 // Logical shift right and narrowing from 2*sew to sew with rounding and
 // unsigned saturation.
-void Vnclipu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnclipu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int lmul8 = rv_vector->vector_length_multiplier();
   // This is a narrowing operation and sew is that of the narrow data type.
   // Thus if lmul > 32, then emul for the wider data type is illegal.
@@ -1356,7 +1355,7 @@
 // Perform a signed multiply from T to wider int type. Shift that result
 // right by sizeof(T) * 8 - 1 and round. Saturate if needed to fit into T.
 template <typename T>
-T VsmulHelper(RiscVVectorState *rv_vector, T vs2, T vs1) {
+T VsmulHelper(RiscVVectorState* rv_vector, T vs2, T vs1) {
   using WT = typename WideType<T>::type;
   WT vd_w;
   WT vs2_w = static_cast<WT>(vs2);
@@ -1375,8 +1374,8 @@
 }
 
 // Vector fractional multiply with rounding and saturation.
-void Vsmul(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsmul(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
diff --git a/riscv/riscv_vector_opi_instructions.h b/riscv/riscv_vector_opi_instructions.h
index 622786d..e9a7461 100644
--- a/riscv/riscv_vector_opi_instructions.h
+++ b/riscv/riscv_vector_opi_instructions.h
@@ -34,200 +34,200 @@
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vadd(Instruction *inst);
+void Vadd(Instruction* inst);
 // Element wide vector subtract. This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector) or rs1 (scalar). Source 2 is a vector
 // mask operand.
-void Vsub(Instruction *inst);
+void Vsub(Instruction* inst);
 // Element wide vector reverse subtract. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vrsub(Instruction *inst);
+void Vrsub(Instruction* inst);
 // Element wide bitwise and. This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vand(Instruction *inst);
+void Vand(Instruction* inst);
 // Element wide bitwise or. This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vor(Instruction *inst);
+void Vor(Instruction* inst);
 // Element wide bitwise xor. This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vxor(Instruction *inst);
+void Vxor(Instruction* inst);
 // Element wide logical left shift. This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vsll(Instruction *inst);
+void Vsll(Instruction* inst);
 // Element wide logical right shift. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand.
-void Vsrl(Instruction *inst);
+void Vsrl(Instruction* inst);
 // Element wide arithmetic right shift. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand.
-void Vsra(Instruction *inst);
+void Vsra(Instruction* inst);
 // Element wide narrowing logical right shift. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vnsrl(Instruction *inst);
+void Vnsrl(Instruction* inst);
 // Element wide narrowing arithmetic right shift. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vnsra(Instruction *inst);
+void Vnsra(Instruction* inst);
 // Vector signed min (pairwise). This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vmin(Instruction *inst);
+void Vmin(Instruction* inst);
 // Vector unsigned min (pairwise). This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vminu(Instruction *inst);
+void Vminu(Instruction* inst);
 // Vector signed max (pairwise). This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vmax(Instruction *inst);
+void Vmax(Instruction* inst);
 // Vector unsigned max (pairwise). This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vmaxu(Instruction *inst);
+void Vmaxu(Instruction* inst);
 // Vector mask set equal. This instruction takes three source operands and a
 // vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vmseq(Instruction *inst);
+void Vmseq(Instruction* inst);
 // Vector mask set not equal.  This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vmsne(Instruction *inst);
+void Vmsne(Instruction* inst);
 // Vector mask set less than unsigned. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand.
-void Vmsltu(Instruction *inst);
+void Vmsltu(Instruction* inst);
 // Vector mask set less than signed. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector) or rs1 (scalar). Source 2 is a vector mask
 // operand.
-void Vmslt(Instruction *inst);
+void Vmslt(Instruction* inst);
 // Vector mask set less or equal unsigned. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector) or rs1 (scalar). Source 2 is a vector mask
 // operand.
-void Vmsleu(Instruction *inst);
+void Vmsleu(Instruction* inst);
 // Vector mask set less or equal signed. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand.
-void Vmsle(Instruction *inst);
+void Vmsle(Instruction* inst);
 // Vector mask set greater than unsigned. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vmsgtu(Instruction *inst);
+void Vmsgtu(Instruction* inst);
 // Vector mask set greater than signed. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vmsgt(Instruction *inst);
+void Vmsgt(Instruction* inst);
 // Vector saturating unsigned add. This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vsaddu(Instruction *inst);
+void Vsaddu(Instruction* inst);
 // Vector saturating signed add. This instruction takes three source operands
 // and a vector destination operand. Source 0 is the vs2 vector source. Source 1
 // is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector
 // mask operand.
-void Vsadd(Instruction *inst);
+void Vsadd(Instruction* inst);
 // Vector saturating unsigned subtrract. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand.
-void Vssubu(Instruction *inst);
+void Vssubu(Instruction* inst);
 // Vector saturating subtract. This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand.
-void Vssub(Instruction *inst);
+void Vssub(Instruction* inst);
 // Vector add with carry. This instruction takes three source operands and a
 // vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand that contains the carry in values.
-void Vadc(Instruction *inst);
+void Vadc(Instruction* inst);
 // Vector add with carry - carry generate. This instruction takes three source
 // operands and a vector destination operand. Source 0 is the vs2 vector source.
 // Source 1 is either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a
 // vector mask operand that contains the carry in values. The output of this
 // instruction is the carry outs of each element wise addition. It is stored in
 // the format of the vector flags.
-void Vmadc(Instruction *inst);
+void Vmadc(Instruction* inst);
 // Vector subtract with borrow. This instruction takes three source operands and
 // a vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand that contains the borrow values.
-void Vsbc(Instruction *inst);
+void Vsbc(Instruction* inst);
 // Vector subtract with borrow - borrow generate. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand that contains the borrow values. The output
 // of this instruction is the borrow outs of each element wise subtraction. It
 // is stored in the format of the vector flags.
-void Vmsbc(Instruction *inst);
+void Vmsbc(Instruction* inst);
 // Vector pairwise merge. This instruction takes three source operands and a
 // vector destination operand. Source 0 is the vs2 vector source. Source 1 is
 // either vs1 (vector), rs1 (scalar), or an immediate. Source 2 is a vector mask
 // operand. This semantic function also captures the functionality of vmv.vv,
 // vmv.vx, and vmv.vi, in which case vs2 is register group v0, and the mask
 // is all ones.
-void Vmerge(Instruction *inst);
+void Vmerge(Instruction* inst);
 // Vector register move. This instruction takes one source operands and a
 // vector destination operand. Source 0 is the vs2 vector source. The num_regs
 // value is part of the opcode and should be bound to the semantic function at
 // decode.
-void Vmvr(int num_regs, Instruction *inst);
+void Vmvr(int num_regs, Instruction* inst);
 // Vector logical right shift with rounding. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vssrl(Instruction *inst);
+void Vssrl(Instruction* inst);
 // Vector arithmetic right shift with rounding. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vssra(Instruction *inst);
+void Vssra(Instruction* inst);
 // Vector logical right shift with rounding and (unsigned) saturation from SEW *
 // 2 to SEW wide elements. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vnclipu(Instruction *inst);
+void Vnclipu(Instruction* inst);
 // Vector arithmetic right shift with rounding and (signed) saturation from SEW
 // * 2 to SEW wide elements. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector), rs1 (scalar), or an immediate.
 // Source 2 is a vector mask operand.
-void Vnclip(Instruction *inst);
+void Vnclip(Instruction* inst);
 // Vector fractional multiply. This instruction takes three
 // source operands and a vector destination operand. Source 0 is the vs2 vector
 // source. Source 1 is either vs1 (vector) or rs1 (scalar). Source 2 is a vector
 // mask operand.
-void Vsmul(Instruction *inst);
+void Vsmul(Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_opm_instructions.cc b/riscv/riscv_vector_opm_instructions.cc
index 32c1217..21e3157 100644
--- a/riscv/riscv_vector_opm_instructions.cc
+++ b/riscv/riscv_vector_opm_instructions.cc
@@ -17,7 +17,6 @@
 #include <cstdint>
 #include <functional>
 #include <limits>
-#include <optional>
 #include <type_traits>
 
 #include "absl/log/log.h"
@@ -34,7 +33,7 @@
 
 // Helper function used to factor out some code from Vaadd* instructions.
 template <typename T>
-inline T VaaddHelper(RiscVVectorState *rv_vector, T vs2, T vs1) {
+inline T VaaddHelper(RiscVVectorState* rv_vector, T vs2, T vs1) {
   // Perform the addition using a wider type, then shift and round.
   using WT = typename WideType<T>::type;
   WT vs2_w = static_cast<WT>(vs2);
@@ -45,8 +44,8 @@
 
 // Average unsigned add. The two sources are added, then shifted right by one
 // and rounded.
-void Vaaddu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vaaddu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -78,8 +77,8 @@
 
 // Average signed add. The two sources are added, then shifted right by one and
 // rounded.
-void Vaadd(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vaadd(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -112,7 +111,7 @@
 // Helper function for Vasub* instructions. Subract using a wider type, then
 // round.
 template <typename T>
-inline T VasubHelper(RiscVVectorState *rv_vector, T vs2, T vs1) {
+inline T VasubHelper(RiscVVectorState* rv_vector, T vs2, T vs1) {
   using WT = typename WideType<T>::type;
   WT vs2_w = static_cast<WT>(vs2);
   WT vs1_w = static_cast<WT>(vs1);
@@ -121,8 +120,8 @@
 }
 
 // Averaging unsigned subtract - subtract then shift right by 1 and round.
-void Vasubu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vasubu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -153,8 +152,8 @@
 }
 
 // Averaging signed subtract. Subtract then shift right by 1 and round.
-void Vasub(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vasub(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -188,19 +187,19 @@
 // is used by the following bitwise mask manipulation instruction semantic
 // functions.
 static inline void BitwiseMaskBinaryOp(
-    RiscVVectorState *rv_vector, const Instruction *inst,
+    RiscVVectorState* rv_vector, const Instruction* inst,
     std::function<uint8_t(uint8_t, uint8_t)> op) {
   if (rv_vector->vector_exception()) return;
   int vstart = rv_vector->vstart();
   int vlen = rv_vector->vector_length();
   // Get spans for vector source and destination registers.
-  auto *vs2_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto* vs2_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto vs2_span = vs2_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto *vs1_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto* vs1_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto vs1_span = vs1_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto *vd_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
-  auto *vd_db = vd_op->CopyDataBuffer();
+  auto* vd_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
+  auto* vd_db = vd_op->CopyDataBuffer();
   auto vd_span = vd_db->Get<uint8_t>();
   // Compute start and end locations.
   int start_byte = vstart / 8;
@@ -226,51 +225,51 @@
 }
 
 // Bitwise vector mask instructions. The operation is clear by their name.
-void Vmandnot(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmandnot(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return vs2 & ~vs1;
   });
 }
 
-void Vmand(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmand(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return vs2 & vs1;
   });
 }
-void Vmor(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmor(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return vs2 | vs1;
   });
 }
-void Vmxor(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmxor(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return vs2 ^ vs1;
   });
 }
-void Vmornot(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmornot(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return vs2 | ~vs1;
   });
 }
-void Vmnand(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmnand(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return ~(vs2 & vs1);
   });
 }
-void Vmnor(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmnor(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return ~(vs2 | vs1);
   });
 }
-void Vmxnor(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmxnor(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   BitwiseMaskBinaryOp(rv_vector, inst, [](uint8_t vs2, uint8_t vs1) -> uint8_t {
     return ~(vs2 ^ vs1);
   });
@@ -278,8 +277,8 @@
 
 // Vector unsigned divide. Note, just like the scalar divide instruction, a
 // divide by zero does not cause an exception, instead it returns all 1s.
-void Vdivu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vdivu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -315,8 +314,8 @@
 
 // Signed divide. Divide by 0 returns all 1s. If -1 is divided by the largest
 // magnitude negative number, it returns that negative number.
-void Vdiv(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vdiv(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -363,8 +362,8 @@
 }
 
 // Unsigned remainder. If the denominator is 0, it returns the enumerator.
-void Vremu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vremu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -399,8 +398,8 @@
 }
 
 // Signed remainder. If the denominator is 0, it returns the enumerator.
-void Vrem(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrem(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -447,8 +446,8 @@
 }
 
 // Multiply high, unsigned.
-void Vmulhu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmulhu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -480,8 +479,8 @@
 
 // Signed multiply. Note, that signed and unsigned multiply operations have the
 // same result for the low half of the product.
-void Vmul(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmul(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -533,8 +532,8 @@
 }
 
 // Multiply signed unsigned and return the high half.
-void Vmulhsu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmulhsu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -565,8 +564,8 @@
 }
 
 // Signed multiply, return high half.
-void Vmulh(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmulh(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -597,8 +596,8 @@
 }
 
 // Multiply-add.
-void Vmadd(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmadd(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -636,8 +635,8 @@
 }
 
 // Negated multiply and add.
-void Vnmsub(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnmsub(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -674,8 +673,8 @@
 }
 
 // Multiply add overwriting the sum.
-void Vmacc(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmacc(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -712,8 +711,8 @@
 }
 
 // Negated multiply add, overwriting sum.
-void Vnmsac(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vnmsac(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -750,8 +749,8 @@
 }
 
 // Widening unsigned add.
-void Vwaddu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwaddu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -777,8 +776,8 @@
 }
 
 // Widening unsigned subtract.
-void Vwsubu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwsubu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -804,8 +803,8 @@
 }
 
 // Widening signed add.
-void Vwadd(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwadd(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -844,8 +843,8 @@
 }
 
 // Widening signed subtract.
-void Vwsub(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwsub(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -883,8 +882,8 @@
 }
 
 // Widening unsigned add with wide source.
-void Vwadduw(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwadduw(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -917,8 +916,8 @@
 }
 
 // Widening unsigned subtract with wide source.
-void Vwsubuw(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwsubuw(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -951,8 +950,8 @@
 }
 
 // Widening signed add with wide source.
-void Vwaddw(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwaddw(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -985,8 +984,8 @@
 }
 
 // Widening signed subtract with wide source.
-void Vwsubw(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwsubw(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1029,8 +1028,8 @@
 }
 
 // Unsigned widening multiply.
-void Vwmulu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmulu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1076,8 +1075,8 @@
 }
 
 // Widening multiply signed-unsigned.
-void Vwmulsu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmulsu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1110,8 +1109,8 @@
 }
 
 // Widening signed multiply.
-void Vwmul(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmul(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1155,8 +1154,8 @@
 }
 
 // Unsigned widening multiply and add.
-void Vwmaccu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmaccu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1192,8 +1191,8 @@
 }
 
 // Widening signed multiply and add.
-void Vwmacc(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmacc(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1226,8 +1225,8 @@
 }
 
 // Widening unsigned-signed multiply and add.
-void Vwmaccus(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmaccus(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
@@ -1262,8 +1261,8 @@
 }
 
 // Widening signed-unsigned multiply and add.
-void Vwmaccsu(const Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwmaccsu(const Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   // LMUL8 cannot be 64.
   if (rv_vector->vector_length_multiplier() > 32) {
diff --git a/riscv/riscv_vector_opm_instructions.h b/riscv/riscv_vector_opm_instructions.h
index 7a3844f..a9f8a87 100644
--- a/riscv/riscv_vector_opm_instructions.h
+++ b/riscv/riscv_vector_opm_instructions.h
@@ -27,151 +27,151 @@
 // Integer average unsigned add. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vaaddu(const Instruction *inst);
+void Vaaddu(const Instruction* inst);
 // Integer average signed add. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vaadd(const Instruction *inst);
+void Vaadd(const Instruction* inst);
 // Integer average unsigned subtract. This instruction takes 3 source operands
 // and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vasubu(const Instruction *inst);
+void Vasubu(const Instruction* inst);
 // Integer average signed subtract. This instruction takes 3 source operands
 // and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vasub(const Instruction *inst);
+void Vasub(const Instruction* inst);
 // The following instructions are vector mask logical operations. Each takes
 // two source operands, vs2 and vs1 vector registers, and one destination
 // operand, vd vector destination register.
-void Vmandnot(const Instruction *inst);
-void Vmand(const Instruction *inst);
-void Vmor(const Instruction *inst);
-void Vmxor(const Instruction *inst);
-void Vmornot(const Instruction *inst);
-void Vmnand(const Instruction *inst);
-void Vmnor(const Instruction *inst);
-void Vmxnor(const Instruction *inst);
+void Vmandnot(const Instruction* inst);
+void Vmand(const Instruction* inst);
+void Vmor(const Instruction* inst);
+void Vmxor(const Instruction* inst);
+void Vmornot(const Instruction* inst);
+void Vmnand(const Instruction* inst);
+void Vmnor(const Instruction* inst);
+void Vmxnor(const Instruction* inst);
 // Integer unsigned division. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vdivu(const Instruction *inst);
+void Vdivu(const Instruction* inst);
 // Integer signed division. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vdiv(const Instruction *inst);
+void Vdiv(const Instruction* inst);
 // Integer unsigned remainder. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vremu(const Instruction *inst);
+void Vremu(const Instruction* inst);
 // Integer signed remainder. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vrem(const Instruction *inst);
+void Vrem(const Instruction* inst);
 // Integer unsigned multiply high. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vmulhu(const Instruction *inst);
+void Vmulhu(const Instruction* inst);
 // Integer signed multiply. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vmul(const Instruction *inst);
+void Vmul(const Instruction* inst);
 // Integer signed-unsigned multiply high. This instruction takes 3 source
 // operands and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and
 // source 2 is vector mask. The destination operand is a vector register group.
-void Vmulhsu(const Instruction *inst);
+void Vmulhsu(const Instruction* inst);
 // Integer signed multiply high. This instruction takes 3 source operands and
 // one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vmulh(const Instruction *inst);
+void Vmulh(const Instruction* inst);
 // Integer multiply add (vs1 * vd) + vs2. This instruction takes 4 source
 // operands and one destination operand. Source 0 is vs2, source 1 is vs1 (or
 // rs1), source 2 is Vd as a source operand, and source 4 is vector mask. The
 // destination operand is the Vd register group.
-void Vmadd(const Instruction *inst);
+void Vmadd(const Instruction* inst);
 // Integer multiply subtract -(vs1 * vd) + vs2. This instruction takes 4
 // source operands and one destination operand. Source 0 is vs2, source 1 is vs1
 // (or rs1), source 2 is Vd as a source operand, and source 4 is vector mask.
 // The destination operand is the Vd register group.
-void Vnmsub(const Instruction *inst);
+void Vnmsub(const Instruction* inst);
 // Integer multiply add (vs1 * vs2) + vd. This instruction takes 4 source
 // operands and one destination operand. Source 0 is vs2, source 1 is vs1 (or
 // rs1), source 2 is Vd as a source operand, and source 4 is vector mask. The
 // destination operand is the Vd register group.
-void Vmacc(const Instruction *inst);
+void Vmacc(const Instruction* inst);
 // Integer multiply subtract -(vs1 * vs2) + vd. This instruction takes 4 source
 // operands and one destination operand. Source 0 is vs2, source 1 is vs1 (or
 // rs1), source 2 is Vd as a source operand, and source 4 is vector mask. The
 // destination operand is the Vd register group.
-void Vnmsac(const Instruction *inst);
+void Vnmsac(const Instruction* inst);
 // Integer widening unsigned addition. This instruction takes 3 source operands
 // and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vwaddu(const Instruction *inst);
+void Vwaddu(const Instruction* inst);
 // Integer widening signed addition. This instruction takes 3 source operands
 // and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vwadd(const Instruction *inst);
+void Vwadd(const Instruction* inst);
 // Integer widening unsigned subtraction. This instruction takes 3 source
 // operands and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and
 // source 2 is vector mask. The destination operand is a vector register group.
-void Vwsubu(const Instruction *inst);
+void Vwsubu(const Instruction* inst);
 // Integer widening signed subtraction. This instruction takes 3 source operands
 // and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and source 2
 // is vector mask. The destination operand is a vector register group.
-void Vwsub(const Instruction *inst);
+void Vwsub(const Instruction* inst);
 // Integer widening unsigned addition with one wide source operand. This
 // instruction takes 3 source operands and one destination. Source 0 is vs2
 // (wide), source 1 is vs1 (or rs1), and source 2 is vector mask. The
 // destination operand is a vector register group.
-void Vwadduw(const Instruction *inst);
+void Vwadduw(const Instruction* inst);
 // Integer widening signed addition with one wide source operand. This
 // instruction takes 3 source operands and one destination. Source 0 is vs2
 // (wide), source 1 is vs1 (or rs1), and source 2 is vector mask. The
 // destination operand is a vector register group.
-void Vwaddw(const Instruction *inst);
+void Vwaddw(const Instruction* inst);
 // Integer widening unsigned subtraction with one wide source operand. This
 // instruction takes 3 source operands and one destination. Source 0 is vs2
 // (wide), source 1 is vs1 (or rs1), and source 2 is vector mask. The
 // destination operand is a vector register group.
-void Vwsubuw(const Instruction *inst);
+void Vwsubuw(const Instruction* inst);
 // Integer widening signed subtraction with one wide source operand. This
 // instruction takes 3 source operands and one destination. Source 0 is vs2
 // (wide), source 1 is vs1 (or rs1), and source 2 is vector mask. The
 // destination operand is a vector register group.
-void Vwsubw(const Instruction *inst);
+void Vwsubw(const Instruction* inst);
 // Integer widening unsigned multiplication. This instruction takes 3 source
 // operands and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and
 // source 2 is vector mask. The destination operand is a vector register group.
-void Vwmulu(const Instruction *inst);
+void Vwmulu(const Instruction* inst);
 // Integer widening signed by unsigned multiplication. This instruction takes 3
 // source operands and one destination. Source 0 is vs2, source 1 is vs1 (or
 // rs1), and source 2 is vector mask. The destination operand is a vector
 // register group.
-void Vwmulsu(const Instruction *inst);
+void Vwmulsu(const Instruction* inst);
 // Integer widening signed multiplication. This instruction takes 3 source
 // operands and one destination. Source 0 is vs2, source 1 is vs1 (or rs1), and
 // source 2 is vector mask. The destination operand is a vector register group.
-void Vwmul(const Instruction *inst);
+void Vwmul(const Instruction* inst);
 // Integer widening signed multiply and add (vs2 * vs1) + vd. This instruction
 // takes 4 source operands and one destination operand. Source 0 is vs2, source
 // 1 is vs1 (or rs1), source 2 is Vd as a source operand, and source 4 is vector
 // mask. The destination operand is the Vd register group.
-void Vwmaccu(const Instruction *inst);
+void Vwmaccu(const Instruction* inst);
 // Integer widening unsigned multiply and add (vs2 * vs1) + vd. This instruction
 // takes 4 source operands and one destination operand. Source 0 is vs2, source
 // 1 is vs1 (or rs1), source 2 is Vd as a source operand, and source 4 is vector
 // mask. The destination operand is the Vd register group.
-void Vwmacc(const Instruction *inst);
+void Vwmacc(const Instruction* inst);
 // Integer widening unsigned by signed multiply and add (vs2 * vs1) + vd. This
 // instruction takes 4 source operands and one destination operand. Source 0 is
 // vs2, source 1 is vs1 (or rs1), source 2 is Vd as a source operand, and source
 // 4 is vector mask. The destination operand is the Vd register group.
-void Vwmaccus(const Instruction *inst);
+void Vwmaccus(const Instruction* inst);
 // Integer widening signed by unsigned multiply and add (vs2 * vs1) + vd. This
 // instruction takes 4 source operands and one destination operand. Source 0 is
 // vs2, source 1 is vs1 (or rs1), source 2 is Vd as a source operand, and source
 // 4 is vector mask. The destination operand is the Vd register group.
-void Vwmaccsu(const Instruction *inst);
+void Vwmaccsu(const Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_permute_instructions.cc b/riscv/riscv_vector_permute_instructions.cc
index bf993d7..090fb5a 100644
--- a/riscv/riscv_vector_permute_instructions.cc
+++ b/riscv/riscv_vector_permute_instructions.cc
@@ -32,7 +32,7 @@
 
 // This helper function handles the vector gather operations.
 template <typename Vd, typename Vs2, typename Vs1>
-void VrgatherHelper(RiscVVectorState *rv_vector, Instruction *inst) {
+void VrgatherHelper(RiscVVectorState* rv_vector, Instruction* inst) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
   int elements_per_vector =
@@ -46,8 +46,8 @@
   }
   int max_regs = std::max(
       1, (num_elements + elements_per_vector - 1) / elements_per_vector);
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -57,7 +57,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute the where to start
   // the operation.
@@ -66,13 +66,13 @@
   int item_index = vector_index % elements_per_vector;
   // Determine if it's vector-vector or vector-scalar.
   bool vector_scalar = inst->Source(1)->shape()[0] == 1;
-  auto src0_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src0_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   int max_index = src0_op->size() * elements_per_vector;
   // Iterate over the number of registers to write.
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -107,8 +107,8 @@
 }
 
 // Vector register gather.
-void Vrgather(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrgather(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -127,8 +127,8 @@
 }
 
 // Vector register gather with 16 bit indices.
-void Vrgatherei16(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vrgatherei16(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -148,15 +148,15 @@
 
 // This helper function handles the vector slide up/down instructions.
 template <typename Vd>
-void VSlideHelper(RiscVVectorState *rv_vector, Instruction *inst, int offset) {
+void VSlideHelper(RiscVVectorState* rv_vector, Instruction* inst, int offset) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = std::max(
       1, (num_elements + elements_per_vector - 1) / elements_per_vector);
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -166,7 +166,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute the where to start
   // the operation.
@@ -177,7 +177,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -205,9 +205,9 @@
   rv_vector->clear_vstart();
 }
 
-void Vslideup(Instruction *inst) {
+void Vslideup(Instruction* inst) {
   using ValueType = RV32Register::ValueType;
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   auto offset = generic::GetInstructionSource<ValueType>(inst, 1, 0);
   int int_offset = static_cast<int>(offset);
@@ -229,9 +229,9 @@
   }
 }
 
-void Vslidedown(Instruction *inst) {
+void Vslidedown(Instruction* inst) {
   using ValueType = RV32Register::ValueType;
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   auto offset = generic::GetInstructionSource<ValueType>(inst, 1, 0);
   // Slide down amount is negative.
@@ -254,15 +254,15 @@
 
 // This helper function handles the vector slide up/down 1 instructions.
 template <typename Vd>
-void VSlide1Helper(RiscVVectorState *rv_vector, Instruction *inst, int offset) {
+void VSlide1Helper(RiscVVectorState* rv_vector, Instruction* inst, int offset) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = std::max(
       1, (num_elements + elements_per_vector - 1) / elements_per_vector);
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -272,7 +272,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(2));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(2));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute the where to start
   // the operation.
@@ -284,7 +284,7 @@
   for (int reg = start_reg; (reg < max_regs) && (vector_index < num_elements);
        reg++) {
     // Allocate data buffer for the new register data.
-    auto *dest_db = dest_op->CopyDataBuffer(reg);
+    auto* dest_db = dest_op->CopyDataBuffer(reg);
     auto dest_span = dest_db->Get<Vd>();
     // Write data into register subject to masking.
     int element_count = std::min(elements_per_vector, num_elements);
@@ -312,8 +312,8 @@
   rv_vector->clear_vstart();
 }
 
-void Vslide1up(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vslide1up(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -331,8 +331,8 @@
   }
 }
 
-void Vslide1down(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vslide1down(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -350,8 +350,8 @@
   }
 }
 
-void Vfslide1up(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfslide1up(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -365,8 +365,8 @@
   }
 }
 
-void Vfslide1down(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfslide1down(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -381,15 +381,15 @@
 }
 
 template <typename Vd>
-void VCompressHelper(RiscVVectorState *rv_vector, Instruction *inst) {
+void VCompressHelper(RiscVVectorState* rv_vector, Instruction* inst) {
   if (rv_vector->vector_exception()) return;
   int num_elements = rv_vector->vector_length();
   int elements_per_vector =
       rv_vector->vector_register_byte_length() / sizeof(Vd);
   int max_regs = std::max(
       1, (num_elements + elements_per_vector - 1) / elements_per_vector);
-  auto *dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
+  auto* dest_op =
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
   // Verify that there are enough registers in the destination operand.
   if (dest_op->size() < max_regs) {
     rv_vector->set_vector_exception();
@@ -399,7 +399,7 @@
     return;
   }
   // Get the vector mask.
-  auto *mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto* mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   // Get the vector start element index and compute the where to start
   // the operation.
@@ -407,7 +407,7 @@
   int dest_index = 0;
   int prev_reg = -1;
   absl::Span<Vd> dest_span;
-  generic::DataBuffer *dest_db = nullptr;
+  generic::DataBuffer* dest_db = nullptr;
   // Iterate over the input elements.
   for (int i = vector_index; i < num_elements; i++) {
     // Get mask value.
@@ -435,8 +435,8 @@
   rv_vector->clear_vstart();
 }
 
-void Vcompress(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vcompress(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
diff --git a/riscv/riscv_vector_permute_instructions.h b/riscv/riscv_vector_permute_instructions.h
index 4aa1577..7807e33 100644
--- a/riscv/riscv_vector_permute_instructions.h
+++ b/riscv/riscv_vector_permute_instructions.h
@@ -27,60 +27,60 @@
 // operands and one destination operand. Source 0 is the vector from which
 // elements are gathered, source 1 is the index vector, and source 2 is the
 // vector mask register. The destination operand is the target vector register.
-void Vrgather(Instruction *inst);
+void Vrgather(Instruction* inst);
 // Vector register gather instruction with 16 bit indices. This instruction
 // takes three source operands and one destination operand. Source 0 is the
 // vector from which elements are gathered, source 1 is the index vector, and
 // source 2 is the vector mask register. The destination operand is the target
 // vector register.
-void Vrgatherei16(Instruction *inst);
+void Vrgatherei16(Instruction* inst);
 // Vector slide up instruction. This instruction takes three source operands
 // and one destination operand. Source 0 is the vector source register that
 // contains the values that are 'slid' up. Source 1 is a scalar register or
 // immediate that specifies the number of 'entries' by which source 0 values
 // are slid up. Source 2 is the vector mask register. The destination operand
 // is the target vector register.
-void Vslideup(Instruction *inst);
+void Vslideup(Instruction* inst);
 // Vector slide down instruction. This instruction takes three source operands
 // and one destination operand. Source 0 is the vector source register that
 // contains the values that are 'slid' down. Source 1 is a scalar register or
 // immediate that specifies the number of 'entries' by which source 0 values
 // are slid down. Source 2 is the vector mask register. The destination operand
 // is the target vector register.
-void Vslidedown(Instruction *inst);
+void Vslidedown(Instruction* inst);
 // Vector slide up instruction. This instruction takes three source operands
 // and one destination operand. Source 0 is the vector source register that
 // contains the values that are 'slid' up by 1. Source 1 is a scalar register or
 // immediate that specifies the value written into the 'empty' slot. Source 2 is
 // the vector mask register. The destination operand is the target vector
 // register.
-void Vslide1up(Instruction *inst);
+void Vslide1up(Instruction* inst);
 // Vector slide down instruction. This instruction takes three source operands
 // and one destination operand. Source 0 is the vector source register that
 // contains the values that are 'slid' down. Source 1 is a scalar register or
 // immediate that specifies the value written into the 'empty' slot. Source 2 is
 // the vector mask register. The destination operand is the target vector
 // register.
-void Vslide1down(Instruction *inst);
+void Vslide1down(Instruction* inst);
 // Vector fp slide up instruction. This instruction takes three source operands
 // and one destination operand. Source 0 is the vector source register that
 // contains the values that are 'slid' up by 1. Source 1 is a floating point
 // register or immediate that specifies the value written into the 'empty' slot.
 // Source 2 is the vector mask register. The destination operand is the target
 // vector register.
-void Vfslide1up(Instruction *inst);
+void Vfslide1up(Instruction* inst);
 // Vector fp slide down instruction. This instruction takes three source
 // operands and one destination operand. Source 0 is the vector source register
 // that contains the values that are 'slid' down. Source 1 is a floating point
 // register or immediate that specifies the value written into the 'empty' slot.
 // Source 2 is the vector mask register. The destination operand is the target
 // vector register.
-void Vfslide1down(Instruction *inst);
+void Vfslide1down(Instruction* inst);
 // Vector compress instruction. This instruction takes two source operands and
 // one destination operand. Source 0 is the source value vector register. Source
 // 1 is a mask register, with specifies which elements of source 0 should be
 // selected and packed into the destination register.
-void Vcompress(Instruction *inst);
+void Vcompress(Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_reduction_instructions.cc b/riscv/riscv_vector_reduction_instructions.cc
index 787034c..53d099f 100644
--- a/riscv/riscv_vector_reduction_instructions.cc
+++ b/riscv/riscv_vector_reduction_instructions.cc
@@ -15,8 +15,10 @@
 #include "riscv/riscv_vector_reduction_instructions.h"
 
 #include <algorithm>
+#include <cstdint>
 
 #include "absl/log/log.h"
+#include "riscv/riscv_state.h"
 #include "riscv/riscv_vector_instruction_helpers.h"
 
 namespace mpact {
@@ -24,8 +26,8 @@
 namespace riscv {
 
 // Sum reduction.
-void Vredsum(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredsum(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -55,8 +57,8 @@
 }
 
 // And reduction.
-void Vredand(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredand(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -86,8 +88,8 @@
 }
 
 // Or reduction.
-void Vredor(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredor(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -117,8 +119,8 @@
 }
 
 // Xor reduction.
-void Vredxor(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredxor(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -148,8 +150,8 @@
 }
 
 // Unsigned min reduction.
-void Vredminu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredminu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -183,8 +185,8 @@
 }
 
 // Signed min reduction.
-void Vredmin(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredmin(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -217,8 +219,8 @@
 }
 
 // Unsigned max reduction.
-void Vredmaxu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredmaxu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -252,8 +254,8 @@
 }
 
 // Signed max reduction.
-void Vredmax(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vredmax(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -286,8 +288,8 @@
 }
 
 // Unsigned widening (SEW->SEW * 2) reduction.
-void Vwredsumu(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwredsumu(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
@@ -316,8 +318,8 @@
 }
 
 // Signed widening (SEW->SEW * 2) reduction.
-void Vwredsum(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vwredsum(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 1:
diff --git a/riscv/riscv_vector_reduction_instructions.h b/riscv/riscv_vector_reduction_instructions.h
index 4531e63..f84d0ad 100644
--- a/riscv/riscv_vector_reduction_instructions.h
+++ b/riscv/riscv_vector_reduction_instructions.h
@@ -31,25 +31,25 @@
 // result is written to the 0 element of destination operand vd.
 
 // Vector sum reduction.
-void Vredsum(Instruction *inst);
+void Vredsum(Instruction* inst);
 // Vector and reduction.
-void Vredand(Instruction *inst);
+void Vredand(Instruction* inst);
 // Vector or reduction.
-void Vredor(Instruction *inst);
+void Vredor(Instruction* inst);
 // Vector xor reduction.
-void Vredxor(Instruction *inst);
+void Vredxor(Instruction* inst);
 // Vector unsigned min reduction.
-void Vredminu(Instruction *inst);
+void Vredminu(Instruction* inst);
 // Vector signed min reduction.
-void Vredmin(Instruction *inst);
+void Vredmin(Instruction* inst);
 // Vector unsigned max reduction.
-void Vredmaxu(Instruction *inst);
+void Vredmaxu(Instruction* inst);
 // Vector signed max reduction.
-void Vredmax(Instruction *inst);
+void Vredmax(Instruction* inst);
 // Vector unsigned widening sum reduction. The result is 2 * SEW.
-void Vwredsumu(Instruction *inst);
+void Vwredsumu(Instruction* inst);
 // vector signed widening sum reduction. The result is 2 * SEW.
-void Vwredsum(Instruction *inst);
+void Vwredsum(Instruction* inst);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_vector_unary_instructions.cc b/riscv/riscv_vector_unary_instructions.cc
index 318ad24..9183614 100644
--- a/riscv/riscv_vector_unary_instructions.cc
+++ b/riscv/riscv_vector_unary_instructions.cc
@@ -36,12 +36,12 @@
                                           int64_t>::type;
 
 // Move scalar to vector register.
-void VmvToScalar(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VmvToScalar(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) return;
   if (rv_vector->vector_length() == 0) return;
   int sew = rv_vector->selected_element_width();
-  auto *dest_db = inst->Destination(0)->AllocateDataBuffer();
+  auto* dest_db = inst->Destination(0)->AllocateDataBuffer();
   SignedXregType value;
   switch (sew) {
     case 1:
@@ -69,12 +69,12 @@
   dest_db->Submit();
 }
 
-void VmvFromScalar(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void VmvFromScalar(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) return;
   if (rv_vector->vector_length() == 0) return;
   int sew = rv_vector->selected_element_width();
-  auto *dest_db = inst->Destination(0)->CopyDataBuffer();
+  auto* dest_db = inst->Destination(0)->CopyDataBuffer();
   switch (sew) {
     case 1:
       dest_db->Set<int8_t>(0, generic::GetInstructionSource<int8_t>(inst, 0));
@@ -98,19 +98,19 @@
 
 // Population count of vector mask register. The value is written to a scalar
 // register.
-void Vcpop(Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = rv_state->rv_vector();
+void Vcpop(Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = rv_state->rv_vector();
   if (rv_vector->vstart()) {
     rv_vector->set_vector_exception();
     return;
   }
   int vlen = rv_vector->vector_length();
-  auto src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto src_span = src_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto *dest_db = inst->Destination(0)->AllocateDataBuffer();
+  auto* dest_db = inst->Destination(0)->AllocateDataBuffer();
   uint64_t count = 0;
   for (int i = 0; i < vlen; i++) {
     int index = i >> 3;
@@ -136,18 +136,18 @@
 
 // Find first set of vector mask register. The value is written to a scalar
 // register.
-void Vfirst(Instruction *inst) {
-  auto *rv_state = static_cast<RiscVState *>(inst->state());
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vfirst(Instruction* inst) {
+  auto* rv_state = static_cast<RiscVState*>(inst->state());
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) {
     rv_vector->set_vector_exception();
     return;
   }
-  auto src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto src_span = src_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto *dest_db = inst->Destination(0)->AllocateDataBuffer();
+  auto* dest_db = inst->Destination(0)->AllocateDataBuffer();
   // Initialize the element index to -1.
   uint64_t element_index = -1LL;
   int vlen = rv_vector->vector_length();
@@ -176,8 +176,8 @@
 }
 
 // Vector integer sign and zero extension instructions.
-void Vzext2(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vzext2(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 2:
@@ -199,8 +199,8 @@
   }
 }
 
-void Vsext2(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsext2(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 2:
@@ -222,8 +222,8 @@
   }
 }
 
-void Vzext4(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vzext4(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -241,8 +241,8 @@
   }
 }
 
-void Vsext4(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsext4(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 4:
@@ -260,8 +260,8 @@
   }
 }
 
-void Vzext8(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vzext8(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 8:
@@ -275,8 +275,8 @@
   }
 }
 
-void Vsext8(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vsext8(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   switch (sew) {
     case 8:
@@ -291,20 +291,20 @@
 }
 
 // Vector mask set-before-first mask bit.
-void Vmsbf(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsbf(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) {
     rv_vector->set_vector_exception();
     return;
   }
   int vlen = rv_vector->vector_length();
-  auto src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto src_span = src_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   auto dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
-  auto *dest_db = dest_op->CopyDataBuffer(0);
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
+  auto* dest_db = dest_op->CopyDataBuffer(0);
   auto dest_span = dest_db->Get<uint8_t>();
   bool before_first = true;
   int last = 0;
@@ -333,20 +333,20 @@
 }
 
 // Vector mask set-including-first mask bit.
-void Vmsif(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsif(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) {
     rv_vector->set_vector_exception();
     return;
   }
   int vlen = rv_vector->vector_length();
-  auto src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto src_span = src_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   auto dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
-  auto *dest_db = dest_op->CopyDataBuffer(0);
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
+  auto* dest_db = dest_op->CopyDataBuffer(0);
   auto dest_span = dest_db->Get<uint8_t>();
   uint8_t value = 1;
   for (int i = 0; i < vlen; i++) {
@@ -370,20 +370,20 @@
 }
 
 // Vector maks set-only-first mask bit.
-void Vmsof(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vmsof(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   if (rv_vector->vstart()) {
     rv_vector->set_vector_exception();
     return;
   }
   int vlen = rv_vector->vector_length();
-  auto src_op = static_cast<RV32VectorSourceOperand *>(inst->Source(0));
+  auto src_op = static_cast<RV32VectorSourceOperand*>(inst->Source(0));
   auto src_span = src_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
-  auto mask_op = static_cast<RV32VectorSourceOperand *>(inst->Source(1));
+  auto mask_op = static_cast<RV32VectorSourceOperand*>(inst->Source(1));
   auto mask_span = mask_op->GetRegister(0)->data_buffer()->Get<uint8_t>();
   auto dest_op =
-      static_cast<RV32VectorDestinationOperand *>(inst->Destination(0));
-  auto *dest_db = dest_op->CopyDataBuffer(0);
+      static_cast<RV32VectorDestinationOperand*>(inst->Destination(0));
+  auto* dest_db = dest_op->CopyDataBuffer(0);
   auto dest_span = dest_db->Get<uint8_t>();
   bool first = true;
   for (int i = 0; i < vlen; i++) {
@@ -408,8 +408,8 @@
 // writes to each element of the destination vector register group the sum
 // of all bits of elements in the mask register whose index is less than the
 // element. This is subject to masking.
-void Viota(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Viota(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   int count = 0;
   switch (sew) {
@@ -446,8 +446,8 @@
 
 // Writes the index of each active (mask true) element to the destination
 // vector elements.
-void Vid(Instruction *inst) {
-  auto *rv_vector = static_cast<RiscVState *>(inst->state())->rv_vector();
+void Vid(Instruction* inst) {
+  auto* rv_vector = static_cast<RiscVState*>(inst->state())->rv_vector();
   int sew = rv_vector->selected_element_width();
   int index = 0;
   switch (sew) {
diff --git a/riscv/riscv_vector_unary_instructions.h b/riscv/riscv_vector_unary_instructions.h
index 6881608..3b4025d 100644
--- a/riscv/riscv_vector_unary_instructions.h
+++ b/riscv/riscv_vector_unary_instructions.h
@@ -29,46 +29,46 @@
 // Moves a value from index 0 element of a vector register to a scalar register.
 // This instruction takes 1 source and 1 destination. One is a vector register,
 // the other is a scalar (x) register.
-void VmvToScalar(Instruction *inst);
+void VmvToScalar(Instruction* inst);
 // Moves a scalar to index 0 element of a vector register. This instruction
 // takes 1 source and 1 destination. One is a vector register, the other is
 // a scalar (x) register.
-void VmvFromScalar(Instruction *inst);
+void VmvFromScalar(Instruction* inst);
 // Does a population count on the vector mask in the source operand 0 (subject
 // to masking), and writes the result to the scalar register in the destination
 // operand. Operand 1 is a mask register. Only vlen bits are considered.
-void Vcpop(Instruction *inst);
+void Vcpop(Instruction* inst);
 // Computes the index of the first set bit of the vector mask in the source
 // operand 0 (subject ot masking), and writes the result to the scalar register
 // in the destination operand. Operand 1 is a mask register. Only vlen bits
 // are considered.
-void Vfirst(Instruction *inst);
+void Vfirst(Instruction* inst);
 
 // VXUNARY0
 // Element wide zero extend from SEW/2 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vzext2(Instruction *inst);
+void Vzext2(Instruction* inst);
 // Element wide sign extend from SEW/2 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vsext2(Instruction *inst);
+void Vsext2(Instruction* inst);
 // Element wide zero extend from SEW/4 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vzext4(Instruction *inst);
+void Vzext4(Instruction* inst);
 // Element wide sign extend from SEW/4 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vsext4(Instruction *inst);
+void Vsext4(Instruction* inst);
 // Element wide zero extend from SEW/8 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vzext8(Instruction *inst);
+void Vzext8(Instruction* inst);
 // Element wide sign extend from SEW/8 to SEW. This instruction takes two source
 // operands, and a vector destination operand. Source 0 is the vs2 vector
 // source, and source 1 is a vector mask operand.
-void Vsext8(Instruction *inst);
+void Vsext8(Instruction* inst);
 
 // VMUNARY0
 // Set before first mask bit. Takes a vector mask stored in a vector register
@@ -76,32 +76,32 @@
 // bit in the source mask set to 1. This instruction takes one vector source
 // operands, a mask register, and a vector destination operand. Source 0 is the
 // vs2 register source, source 1 is the vector mask operand.
-void Vmsbf(Instruction *inst);
+void Vmsbf(Instruction* inst);
 // Set only first mask bit. Takes a vector mask stored in a vector register
 // and produces a mask register with only the bit set that corresponds to the
 // the first set active bit in the source mask set to 1. This instruction takes
 // one vector source operands, a mask register, and a vector destination
 // operand. Source 0 is the vs2 register source, source 1 is the vector mask
 // operand.
-void Vmsof(Instruction *inst);
+void Vmsof(Instruction* inst);
 // Set including first mask bit. Takes a vector mask stored in a vector register
 // and produces a mask register with all active bits before and including the
 // first set active bit in the source mask set to 1. This instruction takes one
 // vector source operands, a mask register, and a vector destination operand.
 // Source 0 is the vs2 register source, source 1 is the vector mask operand.
-void Vmsif(Instruction *inst);
+void Vmsif(Instruction* inst);
 // Vector Iota instruction. Takes a vector mask stored in a vector register
 // and writes to each element of the destination vector register group the sum
 // of all bits of elements in the mask register whose index is less than the
 // element (parallel prefix sum). This instruction takes two sources and one
 // destination. Source 0 is the vs2 register source, source 1 is the vector
 // mask operand.
-void Viota(Instruction *inst);
+void Viota(Instruction* inst);
 // Vector element index instruction. Writes the element index to the destination
 // vector element group (masking does not change the value written to active
 // elements, only which elements are written to). This instruction takes 1
 // source (mask register) and one destination.
-void Vid(Instruction *inst);
+void Vid(Instruction* inst);
 }  // namespace riscv
 }  // namespace sim
 }  // namespace mpact
diff --git a/riscv/riscv_xip_xie.cc b/riscv/riscv_xip_xie.cc
index daac170..608c7c1 100644
--- a/riscv/riscv_xip_xie.cc
+++ b/riscv/riscv_xip_xie.cc
@@ -24,7 +24,7 @@
 namespace riscv {
 
 // Machine Interrupt Pending methods.
-RiscVMIp::RiscVMIp(uint32_t initial_value, ArchState *state)
+RiscVMIp::RiscVMIp(uint32_t initial_value, ArchState* state)
     : RiscVSimpleCsr<uint32_t>("mip", RiscVCsrEnum::kMIp, initial_value,
                                kReadMask, kWriteMask, state) {}
 void RiscVMIp::Set(uint32_t value) {
@@ -43,7 +43,7 @@
 uint64_t RiscVMIp::GetUint64() { return GetUint32(); }
 
 // Supervisor Interrupt Pending methods.
-RiscVSIp::RiscVSIp(RiscVMIp *mip, RiscVCsrInterface *mideleg, ArchState *state)
+RiscVSIp::RiscVSIp(RiscVMIp* mip, RiscVCsrInterface* mideleg, ArchState* state)
     : RiscVSimpleCsr<uint32_t>("sip", RiscVCsrEnum::kSIp, kReadMask, kWriteMask,
                                state),
       mip_(mip),
@@ -57,7 +57,7 @@
 void RiscVSIp::Set(uint64_t value) { Set(static_cast<uint32_t>(value)); }
 
 // Machine Interrupt Enable methods.
-RiscVMIe::RiscVMIe(uint32_t initial_value, ArchState *state)
+RiscVMIe::RiscVMIe(uint32_t initial_value, ArchState* state)
     : RiscVSimpleCsr<uint32_t>("mie", RiscVCsrEnum::kMIe, initial_value,
                                kReadMask, kWriteMask, state) {}
 void RiscVMIe::Set(uint32_t value) {
@@ -78,7 +78,7 @@
 }
 
 // Supervisor Interrupt Enable methods.
-RiscVSIe::RiscVSIe(RiscVMIe *mie, RiscVCsrInterface *mideleg, ArchState *state)
+RiscVSIe::RiscVSIe(RiscVMIe* mie, RiscVCsrInterface* mideleg, ArchState* state)
     : RiscVSimpleCsr<uint32_t>("sie", RiscVCsrEnum::kSIe, kReadMask, kWriteMask,
                                state),
       mie_(mie),
diff --git a/riscv/riscv_xstatus.cc b/riscv/riscv_xstatus.cc
index 7108f8e..8a4d83e 100644
--- a/riscv/riscv_xstatus.cc
+++ b/riscv/riscv_xstatus.cc
@@ -16,7 +16,6 @@
 
 #include <cstdint>
 
-#include "absl/log/log.h"
 #include "mpact/sim/generic/type_helpers.h"
 #include "riscv/riscv_csr.h"
 #include "riscv/riscv_misa.h"
@@ -42,17 +41,17 @@
 
 // Constructors.
 
-RiscVMStatus::RiscVMStatus(uint32_t initial_value, ArchState *state,
-                           RiscVMIsa *misa)
+RiscVMStatus::RiscVMStatus(uint32_t initial_value, ArchState* state,
+                           RiscVMIsa* misa)
     : RiscVMStatus(StretchMStatus32(initial_value), state, RiscVXlen::RV32,
                    misa) {}
 
-RiscVMStatus::RiscVMStatus(uint64_t initial_value, ArchState *state,
-                           RiscVMIsa *misa)
+RiscVMStatus::RiscVMStatus(uint64_t initial_value, ArchState* state,
+                           RiscVMIsa* misa)
     : RiscVMStatus(initial_value, state, RiscVXlen::RV64, misa) {}
 
-RiscVMStatus::RiscVMStatus(uint64_t initial_value, ArchState *state,
-                           RiscVXlen xlen, RiscVMIsa *misa)
+RiscVMStatus::RiscVMStatus(uint64_t initial_value, ArchState* state,
+                           RiscVXlen xlen, RiscVMIsa* misa)
     : RiscVSimpleCsr<uint64_t>("mstatus", RiscVCsrEnum::kMStatus, initial_value,
                                kReadMask, kWriteMask, state),
       misa_(misa) {
@@ -123,7 +122,7 @@
 
 // RiscVSStatus methods.
 
-RiscVSStatus::RiscVSStatus(RiscVMStatus *mstatus, RiscVState *state)
+RiscVSStatus::RiscVSStatus(RiscVMStatus* mstatus, RiscVState* state)
     : RiscVSimpleCsr<uint64_t>("sstatus", RiscVCsrEnum::kSStatus, kReadMask,
                                kWriteMask, state),
       mstatus_(mstatus) {
@@ -165,7 +164,7 @@
 
 // RiscVUStatus methods.
 
-RiscVUStatus::RiscVUStatus(RiscVMStatus *mstatus, RiscVState *state)
+RiscVUStatus::RiscVUStatus(RiscVMStatus* mstatus, RiscVState* state)
     : RiscVSimpleCsr<uint64_t>("ustatus", RiscVCsrEnum::kUStatus, kReadMask,
                                kWriteMask, state),
       mstatus_(mstatus) {
diff --git a/riscv/riscv_xstatus.h b/riscv/riscv_xstatus.h
index f14724e..9d7354d 100644
--- a/riscv/riscv_xstatus.h
+++ b/riscv/riscv_xstatus.h
@@ -38,8 +38,8 @@
   static constexpr uint64_t kWriteMask = 0x0000'0000'007f'f9bbULL;
   // Disable default constructor.
   RiscVMStatus() = delete;
-  RiscVMStatus(uint32_t initial_value, ArchState *state, RiscVMIsa *misa);
-  RiscVMStatus(uint64_t initial_value, ArchState *state, RiscVMIsa *misa);
+  RiscVMStatus(uint32_t initial_value, ArchState* state, RiscVMIsa* misa);
+  RiscVMStatus(uint64_t initial_value, ArchState* state, RiscVMIsa* misa);
 
   ~RiscVMStatus() override = default;
 
@@ -116,8 +116,8 @@
 
  private:
   // Private constructor.
-  RiscVMStatus(uint64_t initial_value, ArchState *state, RiscVXlen xlen,
-               RiscVMIsa *misa);
+  RiscVMStatus(uint64_t initial_value, ArchState* state, RiscVXlen xlen,
+               RiscVMIsa* misa);
   // Template function to help implement the getters.
   template <int Shift, uint64_t BitMask>
   inline int GetterHelper() {
@@ -130,7 +130,7 @@
     buffer_mask_ |= BitMask << Shift;
   }
 
-  RiscVMIsa *misa_;
+  RiscVMIsa* misa_;
   uint64_t buffer_ = 0;
   uint64_t buffer_mask_ = 0;
   uint32_t read_mask_32_;
@@ -147,7 +147,7 @@
   static constexpr uint64_t kWriteMask = 0x0000'0000'000d'e133ULL;
 
   RiscVSStatus() = delete;
-  RiscVSStatus(RiscVMStatus *mstatus, RiscVState *state);
+  RiscVSStatus(RiscVMStatus* mstatus, RiscVState* state);
 
   // Overrides.
   uint64_t AsUint64() override;
@@ -199,7 +199,7 @@
   uint32_t read_mask_32_;
   uint32_t write_mask_32_;
   uint64_t set_mask_from_32_;
-  RiscVMStatus *mstatus_;
+  RiscVMStatus* mstatus_;
 };
 
 // The ustatus register is a further restricted view of sstatus.
@@ -209,7 +209,7 @@
   static constexpr uint64_t kWriteMask = 0x11ULL;
 
   RiscVUStatus() = delete;
-  RiscVUStatus(RiscVMStatus *mstatus, RiscVState *state);
+  RiscVUStatus(RiscVMStatus* mstatus, RiscVState* state);
   // Overrides.
   uint64_t AsUint64() override;
   uint32_t AsUint32() override;
@@ -229,7 +229,7 @@
   uint32_t read_mask_32_;
   uint32_t write_mask_32_;
   uint64_t set_mask_from_32_;
-  RiscVMStatus *mstatus_;
+  RiscVMStatus* mstatus_;
 };
 
 }  // namespace riscv
diff --git a/riscv/riscv_zc_getters.h b/riscv/riscv_zc_getters.h
index 8525582..827f439 100644
--- a/riscv/riscv_zc_getters.h
+++ b/riscv/riscv_zc_getters.h
@@ -50,8 +50,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcaSourceGetters(SourceOpGetterMap &getter_map,
-                              RiscVEncodingCommon *common) {
+void AddRiscVZcaSourceGetters(SourceOpGetterMap& getter_map,
+                              RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3rs1, [common]() {
     auto num = Extractors::CS::ExtractCsRs1(common->inst_word());
     return GetRegisterSourceOp<IntRegister>(
@@ -98,11 +98,10 @@
     return new ImmediateOperand<uint32_t>(
         Extractors::Inst16Format::ExtractUimm6(common->inst_word()));
   });
-  Insert(getter_map, *Enum::kICiUimm6x4,
-         [common]() -> SourceOperandInterface * {
-           return new ImmediateOperand<uint32_t>(
-               Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
-         });
+  Insert(getter_map, *Enum::kICiUimm6x4, [common]() -> SourceOperandInterface* {
+    return new ImmediateOperand<uint32_t>(
+        Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
+  });
   Insert(getter_map, *Enum::kICiwUimm8x4, [common]() {
     return new ImmediateOperand<uint32_t>(
         Extractors::Inst16Format::ExtractCiwImm10(common->inst_word()));
@@ -116,7 +115,7 @@
         Extractors::Inst16Format::ExtractClImmW(common->inst_word()));
   });
   Insert(getter_map, *Enum::kICssUimm6x4,
-         [common]() -> SourceOperandInterface * {
+         [common]() -> SourceOperandInterface* {
            return new ImmediateOperand<uint32_t>(
                Extractors::Inst16Format::ExtractCssImmW(common->inst_word()));
          });
@@ -133,8 +132,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcaDestGetters(SourceOpGetterMap &getter_map,
-                            RiscVEncodingCommon *common) {
+void AddRiscVZcaDestGetters(SourceOpGetterMap& getter_map,
+                            RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3rd, [common](int latency) {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return GetRegisterDestinationOp<IntRegister>(
@@ -146,8 +145,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcbSourceGetters(SourceOpGetterMap &getter_map,
-                              RiscVEncodingCommon *common) {
+void AddRiscVZcbSourceGetters(SourceOpGetterMap& getter_map,
+                              RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kUimm2b, [common]() {
     auto num = Extractors::CLB::ExtractUimm2(common->inst_word());
     return new ImmediateOperand<uint32_t>(num);
@@ -162,8 +161,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcbDestGetters(DestOpGetterMap &getter_map,
-                            RiscVEncodingCommon *common) {
+void AddRiscVZcbDestGetters(DestOpGetterMap& getter_map,
+                            RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3rs2, [common](int latency) {
     int num = Extractors::CLB::ExtractClRd(common->inst_word());
     return GetRegisterDestinationOp<IntRegister>(
@@ -175,8 +174,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcfSourceGetters(SourceOpGetterMap &getter_map,
-                              RiscVEncodingCommon *common) {
+void AddRiscVZcfSourceGetters(SourceOpGetterMap& getter_map,
+                              RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3frs2, [common]() {
     auto num = Extractors::CS::ExtractCsRs2(common->inst_word());
     return GetRegisterSourceOp<FpRegister>(
@@ -195,11 +194,10 @@
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kICiUimm6x4,
-         [common]() -> SourceOperandInterface * {
-           return new ImmediateOperand<uint32_t>(
-               Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
-         });
+  Insert(getter_map, *Enum::kICiUimm6x4, [common]() -> SourceOperandInterface* {
+    return new ImmediateOperand<uint32_t>(
+        Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
+  });
   Insert(getter_map, *Enum::kIClUimm5x4, [common]() {
     return new ImmediateOperand<uint32_t>(
         Extractors::Inst16Format::ExtractClImmW(common->inst_word()));
@@ -219,8 +217,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcfDestGetters(DestOpGetterMap &getter_map,
-                            RiscVEncodingCommon *common) {
+void AddRiscVZcfDestGetters(DestOpGetterMap& getter_map,
+                            RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3frd, [common](int latency) {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return GetRegisterDestinationOp<FpRegister>(
@@ -232,8 +230,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcdSourceGetters(SourceOpGetterMap &getter_map,
-                              RiscVEncodingCommon *common) {
+void AddRiscVZcdSourceGetters(SourceOpGetterMap& getter_map,
+                              RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3drs2, [common]() {
     auto num = Extractors::CS::ExtractCsRs2(common->inst_word());
     return GetRegisterSourceOp<FpRegister>(
@@ -252,11 +250,10 @@
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kICiUimm6x8,
-         [common]() -> SourceOperandInterface * {
-           return new ImmediateOperand<uint32_t>(
-               Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
-         });
+  Insert(getter_map, *Enum::kICiUimm6x8, [common]() -> SourceOperandInterface* {
+    return new ImmediateOperand<uint32_t>(
+        Extractors::Inst16Format::ExtractCiImmW(common->inst_word()));
+  });
   Insert(getter_map, *Enum::kIClUimm5x8, [common]() {
     return new ImmediateOperand<uint32_t>(
         Extractors::Inst16Format::ExtractClImmW(common->inst_word()));
@@ -276,8 +273,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcdDestGetters(DestOpGetterMap &getter_map,
-                            RiscVEncodingCommon *common) {
+void AddRiscVZcdDestGetters(DestOpGetterMap& getter_map,
+                            RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kC3drd, [common](int latency) {
     int num = Extractors::CL::ExtractClRd(common->inst_word());
     return GetRegisterDestinationOp<IntRegister>(
@@ -292,8 +289,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcmpSourceGetters(SourceOpGetterMap &getter_map,
-                               RiscVEncodingCommon *common) {
+void AddRiscVZcmpSourceGetters(SourceOpGetterMap& getter_map,
+                               RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kRlist, [common]() {
     return new ImmediateOperand<uint32_t>(
         Extractors::CMMP::ExtractRlist(common->inst_word()));
@@ -337,8 +334,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcmpDestGetters(DestOpGetterMap &getter_map,
-                             RiscVEncodingCommon *common) {
+void AddRiscVZcmpDestGetters(DestOpGetterMap& getter_map,
+                             RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kSreg1, [common](int latency) {
     int num =
         kSRegToXRegMap[Extractors::CMMV::ExtractRs1p(common->inst_word())];
@@ -369,10 +366,10 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcmpListSourceGetters(ListSourceOpGetterMap &getter_map,
-                                   RiscVEncodingCommon *common) {
+void AddRiscVZcmpListSourceGetters(ListSourceOpGetterMap& getter_map,
+                                   RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kRlist, [common]() {
-    std::vector<SourceOperandInterface *> result;
+    std::vector<SourceOperandInterface*> result;
     int rlist = Extractors::CMMP::ExtractRlist(common->inst_word());
     // Get the value of 'rlist', and add source operands accordingly.
     if (rlist < 4) return result;
@@ -408,10 +405,10 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcmpListDestGetters(ListDestOpGetterMap &getter_map,
-                                 RiscVEncodingCommon *common) {
+void AddRiscVZcmpListDestGetters(ListDestOpGetterMap& getter_map,
+                                 RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kRlist, [common](std::vector<int> latency) {
-    std::vector<DestinationOperandInterface *> result;
+    std::vector<DestinationOperandInterface*> result;
     int rlist = Extractors::CMMP::ExtractRlist(common->inst_word());
     // Get the value of 'rlist', and add destination operands accordingly.
     int size = latency.size();
@@ -459,8 +456,8 @@
 
 template <typename Enum, typename Extractors, typename IntRegister,
           typename FpRegister>
-void AddRiscVZcmtSourceGetters(SourceOpGetterMap &getter_map,
-                               RiscVEncodingCommon *common) {
+void AddRiscVZcmtSourceGetters(SourceOpGetterMap& getter_map,
+                               RiscVEncodingCommon* common) {
   Insert(getter_map, *Enum::kJtIndex, [common](int latency) {
     int num = Extractors::CMJT::ExtractIndex(common->inst_word());
     return new ImmediateOperand<uint32_t>(num);
diff --git a/riscv/riscv_zc_instructions.cc b/riscv/riscv_zc_instructions.cc
index 02ce209..410cd5e 100644
--- a/riscv/riscv_zc_instructions.cc
+++ b/riscv/riscv_zc_instructions.cc
@@ -43,10 +43,10 @@
 using IntReg = typename std::make_signed<UIntReg>::type;
 
 // Zcmp instructions.
-void RiscVZCmpPush(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVZCmpPush(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   int num_regs = inst->SourcesSize() - 3;
-  auto *db = state->db_factory()->Allocate<UIntReg>(num_regs);
+  auto* db = state->db_factory()->Allocate<UIntReg>(num_regs);
   auto db_span = db->Get<UIntReg>();
   // Get the register values and put them in the data buffer.
   for (int i = 0; i < num_regs; ++i) {
@@ -70,13 +70,13 @@
 
 // This helper pops the number of registers specified into the appropriate
 // destination operands, and then adjusts the stack pointer.
-void RiscVZCmpPopHelper(const Instruction *inst, int size) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVZCmpPopHelper(const Instruction* inst, int size) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   // Compute the stack adjustment.
   auto spimm6 = generic::GetInstructionSource<UIntReg>(inst, 1);
   auto rlist = generic::GetInstructionSource<UIntReg>(inst, 2);
   auto sp_adjustment = spimm6 + kStackAdjBase[rlist];
-  auto *db = state->db_factory()->Allocate<UIntReg>(size);
+  auto* db = state->db_factory()->Allocate<UIntReg>(size);
   // Load registers from the stack.
   auto sp = generic::GetInstructionSource<UIntReg>(inst, 0);
   // Start address = sp + sp_adjustment - sizeof(UIntReg) * size;
@@ -93,25 +93,25 @@
 
 }  // namespace
 
-void RiscVZCmpPop(const Instruction *inst) {
+void RiscVZCmpPop(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 1;
   RiscVZCmpPopHelper(inst, size);
 }
 
-void RiscVZCmpPopRet(const Instruction *inst) {
+void RiscVZCmpPopRet(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 2;  // x2 and next_pc.
   RiscVZCmpPopHelper(inst, size);
   // Now perform the return.
   UIntReg target = generic::GetInstructionSource<UIntReg>(inst, 3);
-  auto *db = inst->Destination(size + 1)->AllocateDataBuffer();
+  auto* db = inst->Destination(size + 1)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->set_branch(true);
 }
 
-void RiscVZCmpPopRetz(const Instruction *inst) {
+void RiscVZCmpPopRetz(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 3;  // x2, x10, and next_pc.
   RiscVZCmpPopHelper(inst, size);
@@ -119,13 +119,13 @@
   RiscVWriteReg<RegType, UIntReg>(inst, size + 1, 0);
   // Now perform the return.
   UIntReg target = generic::GetInstructionSource<UIntReg>(inst, 3);
-  auto *db = inst->Destination(size + 2)->AllocateDataBuffer();
+  auto* db = inst->Destination(size + 2)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->set_branch(true);
 }
 
-void RiscVZCmpMvTwoRegs(const Instruction *inst) {
+void RiscVZCmpMvTwoRegs(const Instruction* inst) {
   RiscVWriteReg<RegType, UIntReg>(
       inst, 0, generic::GetInstructionSource<UIntReg>(inst, 0));
   RiscVWriteReg<RegType, UIntReg>(
@@ -135,9 +135,9 @@
 // Zcmt instructions.
 namespace {
 
-void RiscVZCmtJtHelper(const Instruction *inst, int dest_index) {
+void RiscVZCmtJtHelper(const Instruction* inst, int dest_index) {
   int index = generic::GetInstructionSource<UIntReg>(inst, 0);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   auto jvt_value = state->jvt()->AsUint64();
   auto mode = jvt_value & 0x3f;
   if (mode != 0) {
@@ -147,21 +147,21 @@
   }
   // Load target address from the jump table.
   UIntReg entry_address = (jvt_value & ~0x3f) + (index * sizeof(UIntReg));
-  auto *db = state->db_factory()->Allocate<UIntReg>(1);
+  auto* db = state->db_factory()->Allocate<UIntReg>(1);
   state->LoadMemory(inst, entry_address, db, nullptr, nullptr);
   UIntReg target_address = db->Get<UIntReg>(0);
   db->DecRef();
   // Write the target address to the next pc operand.
-  auto *target_db = inst->Destination(0)->AllocateDataBuffer();
+  auto* target_db = inst->Destination(0)->AllocateDataBuffer();
   target_db->SetSubmit<UIntReg>(0, target_address);
   state->set_branch(true);
 }
 
 }  // namespace
 
-void RiscVZCmtJt(const Instruction *inst) { RiscVZCmtJtHelper(inst, 0); }
+void RiscVZCmtJt(const Instruction* inst) { RiscVZCmtJtHelper(inst, 0); }
 
-void RiscVZCmtJalt(const Instruction *inst) {
+void RiscVZCmtJalt(const Instruction* inst) {
   RiscVZCmtJtHelper(inst, 1);
   // Write the return address to the x1 (ra) operand.
   RiscVWriteReg<RegType, UIntReg>(inst, 1, inst->address() + inst->size());
@@ -184,10 +184,10 @@
 using IntReg = typename std::make_signed<UIntReg>::type;
 
 // Zcmp instructions.
-void RiscVZCmpPush(const Instruction *inst) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVZCmpPush(const Instruction* inst) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   int num_regs = inst->SourcesSize() - 3;
-  auto *db = state->db_factory()->Allocate<UIntReg>(num_regs);
+  auto* db = state->db_factory()->Allocate<UIntReg>(num_regs);
   auto db_span = db->Get<UIntReg>();
   // Get the register values and put them in the data buffer.
   for (int i = 0; i < num_regs; ++i) {
@@ -211,13 +211,13 @@
 
 // This helper pops the number of registers specified into the appropriate
 // destination operands, and then adjusts the stack pointer.
-void RiscVZCmpPopHelper(const Instruction *inst, int size) {
-  RiscVState *state = static_cast<RiscVState *>(inst->state());
+void RiscVZCmpPopHelper(const Instruction* inst, int size) {
+  RiscVState* state = static_cast<RiscVState*>(inst->state());
   // Compute the stack adjustment.
   auto spimm6 = generic::GetInstructionSource<UIntReg>(inst, 1);
   auto rlist = generic::GetInstructionSource<UIntReg>(inst, 2);
   auto sp_adjustment = spimm6 + kStackAdjBase[rlist];
-  auto *db = state->db_factory()->Allocate<UIntReg>(size);
+  auto* db = state->db_factory()->Allocate<UIntReg>(size);
   // Load registers from the stack.
   auto sp = generic::GetInstructionSource<UIntReg>(inst, 0);
   // Start address = sp + sp_adjustment - sizeof(UIntReg) * size;
@@ -234,25 +234,25 @@
 
 }  // namespace
 
-void RiscVZCmpPop(const Instruction *inst) {
+void RiscVZCmpPop(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 1;
   RiscVZCmpPopHelper(inst, size);
 }
 
-void RiscVZCmpPopRet(const Instruction *inst) {
+void RiscVZCmpPopRet(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 2;  // x2 and next_pc.
   RiscVZCmpPopHelper(inst, size);
   // Now perform the return.
   UIntReg target = generic::GetInstructionSource<UIntReg>(inst, 3);
-  auto *db = inst->Destination(size + 1)->AllocateDataBuffer();
+  auto* db = inst->Destination(size + 1)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->set_branch(true);
 }
 
-void RiscVZCmpPopRetz(const Instruction *inst) {
+void RiscVZCmpPopRetz(const Instruction* inst) {
   // Size is the number of registers to pop.
   int size = inst->DestinationsSize() - 3;  // x2, x10, and next_pc.
   RiscVZCmpPopHelper(inst, size);
@@ -260,13 +260,13 @@
   RiscVWriteReg<RegType, UIntReg>(inst, size + 1, 0);
   // Now perform the return.
   UIntReg target = generic::GetInstructionSource<UIntReg>(inst, 3);
-  auto *db = inst->Destination(size + 2)->AllocateDataBuffer();
+  auto* db = inst->Destination(size + 2)->AllocateDataBuffer();
   db->SetSubmit<UIntReg>(0, target);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   state->set_branch(true);
 }
 
-void RiscVZCmpMvTwoRegs(const Instruction *inst) {
+void RiscVZCmpMvTwoRegs(const Instruction* inst) {
   RiscVWriteReg<RegType, UIntReg>(
       inst, 0, generic::GetInstructionSource<UIntReg>(inst, 0));
   RiscVWriteReg<RegType, UIntReg>(
@@ -276,9 +276,9 @@
 // Zcmt instructions.
 namespace {
 
-void RiscVZCmtJtHelper(const Instruction *inst, int dest_index) {
+void RiscVZCmtJtHelper(const Instruction* inst, int dest_index) {
   int index = generic::GetInstructionSource<UIntReg>(inst, 0);
-  auto *state = static_cast<RiscVState *>(inst->state());
+  auto* state = static_cast<RiscVState*>(inst->state());
   auto jvt_value = state->jvt()->AsUint64();
   auto mode = jvt_value & 0x3f;
   if (mode != 0) {
@@ -288,21 +288,21 @@
   }
   // Load target address from the jump table.
   UIntReg entry_address = (jvt_value & ~0x3f) + (index * sizeof(UIntReg));
-  auto *db = state->db_factory()->Allocate<UIntReg>(1);
+  auto* db = state->db_factory()->Allocate<UIntReg>(1);
   state->LoadMemory(inst, entry_address, db, nullptr, nullptr);
   UIntReg target_address = db->Get<UIntReg>(0);
   db->DecRef();
   // Write the target address to the next pc operand.
-  auto *target_db = inst->Destination(0)->AllocateDataBuffer();
+  auto* target_db = inst->Destination(0)->AllocateDataBuffer();
   target_db->SetSubmit<UIntReg>(0, target_address);
   state->set_branch(true);
 }
 
 }  // namespace
 
-void RiscVZCmtJt(const Instruction *inst) { RiscVZCmtJtHelper(inst, 0); }
+void RiscVZCmtJt(const Instruction* inst) { RiscVZCmtJtHelper(inst, 0); }
 
-void RiscVZCmtJalt(const Instruction *inst) {
+void RiscVZCmtJalt(const Instruction* inst) {
   RiscVZCmtJtHelper(inst, 1);
   // Write the return address to the x1 (ra) operand.
   RiscVWriteReg<RegType, UIntReg>(inst, 1, inst->address() + inst->size());
diff --git a/riscv/riscv_zc_instructions.h b/riscv/riscv_zc_instructions.h
index 005a707..82d123a 100644
--- a/riscv/riscv_zc_instructions.h
+++ b/riscv/riscv_zc_instructions.h
@@ -26,30 +26,30 @@
 namespace RV32 {
 
 // Zcmp instructions.
-void RiscVZCmpPush(const Instruction *inst);
-void RiscVZCmpPop(const Instruction *inst);
-void RiscVZCmpPopRet(const Instruction *inst);
-void RiscVZCmpPopRetz(const Instruction *inst);
-void RiscVZCmpMvTwoRegs(const Instruction *inst);
+void RiscVZCmpPush(const Instruction* inst);
+void RiscVZCmpPop(const Instruction* inst);
+void RiscVZCmpPopRet(const Instruction* inst);
+void RiscVZCmpPopRetz(const Instruction* inst);
+void RiscVZCmpMvTwoRegs(const Instruction* inst);
 
 // Zcmt instructions.
-void RiscVZCmtJt(const Instruction *inst);
-void RiscVZCmtJalt(const Instruction *inst);
+void RiscVZCmtJt(const Instruction* inst);
+void RiscVZCmtJalt(const Instruction* inst);
 
 }  // namespace RV32
 
 namespace RV64 {
 
 // Zcmp instructions.
-void RiscVZCmpPush(const Instruction *inst);
-void RiscVZCmpPop(const Instruction *inst);
-void RiscVZCmpPopRet(const Instruction *inst);
-void RiscVZCmpPopRetz(const Instruction *inst);
-void RiscVZCmpMvTwoRegs(const Instruction *inst);
+void RiscVZCmpPush(const Instruction* inst);
+void RiscVZCmpPop(const Instruction* inst);
+void RiscVZCmpPopRet(const Instruction* inst);
+void RiscVZCmpPopRetz(const Instruction* inst);
+void RiscVZCmpMvTwoRegs(const Instruction* inst);
 
 // Zcmt instructions.
-void RiscVZCmtJt(const Instruction *inst);
-void RiscVZCmtJalt(const Instruction *inst);
+void RiscVZCmtJt(const Instruction* inst);
+void RiscVZCmtJalt(const Instruction* inst);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_zfencei_instructions.cc b/riscv/riscv_zfencei_instructions.cc
index 28eb635..5983fbe 100644
--- a/riscv/riscv_zfencei_instructions.cc
+++ b/riscv/riscv_zfencei_instructions.cc
@@ -21,8 +21,8 @@
 namespace sim {
 namespace riscv {
 
-void RiscVZFencei(Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RiscVZFencei(Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->FenceI(instruction);
 }
 
diff --git a/riscv/riscv_zfencei_instructions.h b/riscv/riscv_zfencei_instructions.h
index a58b1f7..d5045be 100644
--- a/riscv/riscv_zfencei_instructions.h
+++ b/riscv/riscv_zfencei_instructions.h
@@ -24,7 +24,7 @@
 using ::mpact::sim::generic::Instruction;
 
 // This instruction has no source or destination operands.
-void RiscVZFencei(Instruction *instruction);
+void RiscVZFencei(Instruction* instruction);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_zfh_instructions.cc b/riscv/riscv_zfh_instructions.cc
index fc8baac..0a47069 100644
--- a/riscv/riscv_zfh_instructions.cc
+++ b/riscv/riscv_zfh_instructions.cc
@@ -86,7 +86,7 @@
 
 // Convert from half precision to single or double precision.
 template <typename T>
-inline T ConvertFromHalfFP(HalfFP half_fp, uint32_t &fflags) {
+inline T ConvertFromHalfFP(HalfFP half_fp, uint32_t& fflags) {
   using UIntType = typename FPTypeInfo<T>::UIntType;
   using HalfFPUIntType = typename FPTypeInfo<HalfFP>::UIntType;
   HalfFPUIntType in_int = half_fp.value;
@@ -144,7 +144,7 @@
 // This is done to get the correct rounding behavior for free from the FPU.
 template <typename T>
 inline HalfFP ConvertToHalfFP(T input_value, FPRoundingMode rm,
-                              uint32_t &fflags) {
+                              uint32_t& fflags) {
   using UIntType = typename FPTypeInfo<T>::UIntType;
   using IntType = typename FPTypeInfo<T>::IntType;
   UIntType in_int = absl::bit_cast<UIntType>(input_value);
@@ -293,10 +293,10 @@
 
 template <typename Result, typename Argument>
 void RiscVZfhCvtHelper(
-    const Instruction *instruction,
-    std::function<Result(Argument, FPRoundingMode, uint32_t &)> operation) {
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+    const Instruction* instruction,
+    std::function<Result(Argument, FPRoundingMode, uint32_t&)> operation) {
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   using DstRegValue = typename DataTypeRegValue<Result>::type;
   uint32_t fflags = 0;
 
@@ -312,7 +312,7 @@
   // Get the rounding mode.
   int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
-  auto *rv_fp = static_cast<RiscVState *>(instruction->state())->rv_fp();
+  auto* rv_fp = static_cast<RiscVState*>(instruction->state())->rv_fp();
   // If the rounding mode is dynamic, read it from the current state.
   if (rm_value == *FPRoundingMode::kDynamic) {
     if (!rv_fp->rounding_mode_valid()) {
@@ -328,7 +328,7 @@
     dest_value = operation(lhs, static_cast<FPRoundingMode>(rm_value), fflags);
   }
   fflags_dest->GetRiscVCsr()->SetBits(fflags);
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
 
@@ -337,7 +337,7 @@
     // bits have to be set to all ones.
     using UReg = typename std::make_unsigned<DstRegValue>::type;
     using UInt = typename FPTypeInfo<Result>::UIntType;
-    auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+    auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
     UReg reg_value = std::numeric_limits<UReg>::max();
     int shift = 8 * sizeof(Result);
     reg_value = (reg_value << shift) | dest_u_value;
@@ -350,16 +350,16 @@
 // Generic helper function enabling HalfFP operations in native datatypes.
 template <typename Argument, typename IntermediateType>
 void RiscVZfhUnaryHelper(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<IntermediateType(IntermediateType)> operation) {
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   uint32_t fflags = 0;
   RiscVUnaryFloatNaNBoxOp<RVFpRegister::ValueType, RVFpRegister::ValueType,
                           HalfFP, Argument>(
       instruction, [instruction, &operation, &fflags](Argument a) -> HalfFP {
-        RiscVFPState *rv_fp =
-            static_cast<RiscVState *>(instruction->state())->rv_fp();
+        RiscVFPState* rv_fp =
+            static_cast<RiscVState*>(instruction->state())->rv_fp();
         int rm_value = generic::GetInstructionSource<int>(instruction, 1);
 
         // If the rounding mode is dynamic, read it from the current state.
@@ -394,17 +394,17 @@
 // Generic helper function enabling HalfFP operations in native datatypes.
 template <typename Argument, typename IntermediateType>
 void RiscVZfhBinaryHelper(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<IntermediateType(IntermediateType, IntermediateType)>
         operation) {
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   uint32_t fflags = 0;
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, HalfFP, Argument>(
       instruction,
       [instruction, &operation, &fflags](Argument a, Argument b) -> HalfFP {
-        RiscVFPState *rv_fp =
-            static_cast<RiscVState *>(instruction->state())->rv_fp();
+        RiscVFPState* rv_fp =
+            static_cast<RiscVState*>(instruction->state())->rv_fp();
         int rm_value = generic::GetInstructionSource<int>(instruction, 2);
         // If the rounding mode is dynamic, read it from the current state.
         if (rm_value == *FPRoundingMode::kDynamic) {
@@ -440,12 +440,12 @@
 // Generic helper function enabling HalfFP operations in native datatypes.
 template <typename Argument, typename IntermediateType>
 void RiscVZfhTernaryHelper(
-    const Instruction *instruction,
+    const Instruction* instruction,
     std::function<IntermediateType(IntermediateType, IntermediateType,
                                    IntermediateType)>
         operation) {
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   uint32_t fflags = 0;
   // RiscVTernaryFloatNaNBoxOp will handle the register NaN boxed reads and
   // write. The operation is in a native datatype so we will handle conversions
@@ -454,8 +454,8 @@
       instruction,
       [instruction, &operation, &fflags](Argument a, Argument b,
                                          Argument c) -> HalfFP {
-        RiscVFPState *rv_fp =
-            static_cast<RiscVState *>(instruction->state())->rv_fp();
+        RiscVFPState* rv_fp =
+            static_cast<RiscVState*>(instruction->state())->rv_fp();
         int rm_value = generic::GetInstructionSource<int>(instruction, 3);
         // If the rounding mode is dynamic, read it from the current state.
         if (rm_value == *FPRoundingMode::kDynamic) {
@@ -492,7 +492,7 @@
 
 // Move a half precision value from a float register to an integer register.
 template <typename XRegister>
-void RiscVZfhFMvxhHelper(const Instruction *instruction) {
+void RiscVZfhFMvxhHelper(const Instruction* instruction) {
   using XRegValue = typename XRegister::ValueType;
   RiscVUnaryFloatOp<XRegValue, HalfFP>(instruction, [](HalfFP a) -> XRegValue {
     if (FPTypeInfo<HalfFP>::SignBit(a)) {
@@ -505,20 +505,20 @@
 
 // Move a half precision value from an integer register to a float register
 template <typename XRegister>
-inline void RiscVZfhFMvhxHelper(const Instruction *instruction) {
+inline void RiscVZfhFMvhxHelper(const Instruction* instruction) {
   using DstRegValue = typename RVFpRegister::ValueType;
   using SrcRegValue = typename XRegister::ValueType;
   SrcRegValue lhs = generic::GetInstructionSource<SrcRegValue>(instruction, 0);
   HalfFP dest_value = {.value = static_cast<uint16_t>(lhs)};
 
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
 
   // NaN box the value.
   using UReg = typename std::make_unsigned<DstRegValue>::type;
   using UInt = typename FPTypeInfo<HalfFP>::UIntType;
-  auto dest_u_value = *reinterpret_cast<UInt *>(&dest_value);
+  auto dest_u_value = *reinterpret_cast<UInt*>(&dest_value);
   UReg reg_value = std::numeric_limits<UReg>::max();
   int shift = 8 * sizeof(HalfFP);
   reg_value = (reg_value << shift) | dest_u_value;
@@ -527,7 +527,7 @@
 
 // Compare two half precision values for equality.
 template <typename XRegister>
-inline void RiscVZfhFcmpeqHelper(const Instruction *instruction) {
+inline void RiscVZfhFcmpeqHelper(const Instruction* instruction) {
   using DstRegValue = typename XRegister::ValueType;
   uint32_t fflags = 0;
   HalfFP lhs =
@@ -538,19 +538,19 @@
   float rhs_f = ConvertFromHalfFP<float>(rhs, fflags);
 
   DstRegValue result = lhs_f == rhs_f ? 1 : 0;
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<DstRegValue>(0, result);
 
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   fflags_dest->GetRiscVCsr()->SetBits(fflags & *FPExceptions::kInvalidOp);
 }
 
 // Compare two half precision values for less than.
 template <typename XRegister>
-inline void RiscVZfhFcmpltHelper(const Instruction *instruction) {
+inline void RiscVZfhFcmpltHelper(const Instruction* instruction) {
   using DstRegValue = typename XRegister::ValueType;
   uint32_t unused_fflags = 0;
   HalfFP lhs =
@@ -561,13 +561,13 @@
   float rhs_f = ConvertFromHalfFP<float>(rhs, unused_fflags);
 
   DstRegValue result = lhs_f < rhs_f ? 1 : 0;
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<DstRegValue>(0, result);
 
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   if (std::isnan(lhs_f) || std::isnan(rhs_f)) {
     fflags_dest->GetRiscVCsr()->SetBits(*FPExceptions::kInvalidOp);
   }
@@ -575,7 +575,7 @@
 
 // Compare two half precision values for less than or equal to.
 template <typename XRegister>
-void RiscVZfhFcmpleHelper(const Instruction *instruction) {
+void RiscVZfhFcmpleHelper(const Instruction* instruction) {
   using DstRegValue = typename XRegister::ValueType;
   uint32_t unused_fflags = 0;
   HalfFP lhs =
@@ -586,13 +586,13 @@
   float rhs_f = ConvertFromHalfFP<float>(rhs, unused_fflags);
 
   DstRegValue result = lhs_f <= rhs_f ? 1 : 0;
-  auto *reg = static_cast<generic::RegisterDestinationOperand<DstRegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<DstRegValue>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<DstRegValue>(0, result);
 
-  RiscVCsrDestinationOperand *fflags_dest =
-      static_cast<RiscVCsrDestinationOperand *>(instruction->Destination(1));
+  RiscVCsrDestinationOperand* fflags_dest =
+      static_cast<RiscVCsrDestinationOperand*>(instruction->Destination(1));
   if (std::isnan(lhs_f) || std::isnan(rhs_f)) {
     fflags_dest->GetRiscVCsr()->SetBits(*FPExceptions::kInvalidOp);
   }
@@ -603,45 +603,45 @@
 namespace RV32 {
 // Move a half precision value from a float register to a 32 bit integer
 // register.
-void RiscVZfhFMvxh(const Instruction *instruction) {
+void RiscVZfhFMvxh(const Instruction* instruction) {
   RiscVZfhFMvxhHelper<RV32Register>(instruction);
 }
 
 // Move a half precision value from an integer register to a float register and
 // NaN box the value.
-void RiscVZfhFMvhx(const Instruction *instruction) {
+void RiscVZfhFMvhx(const Instruction* instruction) {
   RiscVZfhFMvhxHelper<RV32Register>(instruction);
 }
 
 // Convert from half precision to signed 32 bit integer.
-void RiscVZfhCvtWh(const Instruction *instruction) {
+void RiscVZfhCvtWh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV32Register::ValueType, HalfFP,
                                 int32_t>(instruction);
 }
 
 // Convert from half precision to unsigned 32 bit integer.
-void RiscVZfhCvtWuh(const Instruction *instruction) {
+void RiscVZfhCvtWuh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV32Register::ValueType, HalfFP,
                                 uint32_t>(instruction);
 }
 
 // Compare two half precision values for equality.
-void RiscVZfhFcmpeq(const Instruction *instruction) {
+void RiscVZfhFcmpeq(const Instruction* instruction) {
   RiscVZfhFcmpeqHelper<RV32Register>(instruction);
 }
 
 // Compare two half precision values for less than.
-void RiscVZfhFcmplt(const Instruction *instruction) {
+void RiscVZfhFcmplt(const Instruction* instruction) {
   RiscVZfhFcmpltHelper<RV32Register>(instruction);
 }
 
 // Compare two half precision values for less than or equal to.
-void RiscVZfhFcmple(const Instruction *instruction) {
+void RiscVZfhFcmple(const Instruction* instruction) {
   RiscVZfhFcmpleHelper<RV32Register>(instruction);
 }
 
 // Classify a half precision value.
-void RiscVZfhFclass(const Instruction *instruction) {
+void RiscVZfhFclass(const Instruction* instruction) {
   RiscVUnaryOp<RV32Register, uint32_t, HalfFP>(
       instruction, [](HalfFP a) -> uint32_t {
         return static_cast<uint32_t>(ClassifyFP(a));
@@ -653,45 +653,45 @@
 namespace RV64 {
 // Move a half precision value from a float register to a 32 bit integer
 // register.
-void RiscVZfhFMvxh(const Instruction *instruction) {
+void RiscVZfhFMvxh(const Instruction* instruction) {
   RiscVZfhFMvxhHelper<RV64Register>(instruction);
 }
 
 // Move a half precision value from an integer register to a float register and
 // NaN box the value.
-void RiscVZfhFMvhx(const Instruction *instruction) {
+void RiscVZfhFMvhx(const Instruction* instruction) {
   RiscVZfhFMvhxHelper<RV64Register>(instruction);
 }
 
 // Convert from half precision to signed 32 bit integer.
-void RiscVZfhCvtWh(const Instruction *instruction) {
+void RiscVZfhCvtWh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV64Register::ValueType, HalfFP,
                                 int32_t>(instruction);
 }
 
 // Convert from half precision to unsigned 32 bit integer.
-void RiscVZfhCvtWuh(const Instruction *instruction) {
+void RiscVZfhCvtWuh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV64Register::ValueType, HalfFP,
                                 uint32_t>(instruction);
 }
 
 // Compare two half precision values for equality.
-void RiscVZfhFcmpeq(const Instruction *instruction) {
+void RiscVZfhFcmpeq(const Instruction* instruction) {
   RiscVZfhFcmpeqHelper<RV64Register>(instruction);
 }
 
 // Compare two half precision values for less than.
-void RiscVZfhFcmplt(const Instruction *instruction) {
+void RiscVZfhFcmplt(const Instruction* instruction) {
   RiscVZfhFcmpltHelper<RV64Register>(instruction);
 }
 
 // Compare two half precision values for less than or equal to.
-void RiscVZfhFcmple(const Instruction *instruction) {
+void RiscVZfhFcmple(const Instruction* instruction) {
   RiscVZfhFcmpleHelper<RV64Register>(instruction);
 }
 
 // Classify a half precision value.
-void RiscVZfhFclass(const Instruction *instruction) {
+void RiscVZfhFclass(const Instruction* instruction) {
   RiscVUnaryOp<RV64Register, uint64_t, HalfFP>(
       instruction, [](HalfFP a) -> uint64_t {
         return static_cast<uint64_t>(ClassifyFP(a));
@@ -699,44 +699,44 @@
 }
 
 // Converts from half precision to signed 64 bit integer.
-void RiscVZfhCvtLh(const Instruction *instruction) {
+void RiscVZfhCvtLh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV64Register::ValueType, HalfFP,
                                 int64_t>(instruction);
 }
 
 // Converts from half precision to unsigned 64 bit integer.
-void RiscVZfhCvtLuh(const Instruction *instruction) {
+void RiscVZfhCvtLuh(const Instruction* instruction) {
   RiscVConvertFloatWithFflagsOp<typename RV64Register::ValueType, HalfFP,
                                 uint64_t>(instruction);
 }
 
 // Converts from signed 64 bit integer to half precision.
-void RiscVZfhCvtHl(const Instruction *instruction) {
+void RiscVZfhCvtHl(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, int64_t>(
       instruction,
-      [](int64_t a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      [](int64_t a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         return ConvertToHalfFP(static_cast<float>(a), rm, fflags);
       });
 }
 
 // Convert from unsigned 64 bit integer to half precision.
-void RiscVZfhCvtHlu(const Instruction *instruction) {
+void RiscVZfhCvtHlu(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, uint64_t>(
       instruction,
-      [](uint64_t a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      [](uint64_t a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         return ConvertToHalfFP(static_cast<float>(a), rm, fflags);
       });
 }
 
 }  // namespace RV64
 
-void RiscVZfhFlhChild(const Instruction *instruction) {
+void RiscVZfhFlhChild(const Instruction* instruction) {
   using FPUInt = typename FPTypeInfo<HalfFP>::UIntType;
-  LoadContext *context = static_cast<LoadContext *>(instruction->context());
+  LoadContext* context = static_cast<LoadContext*>(instruction->context());
   auto value = context->value_db->Get<FPUInt>(0);
-  auto *reg =
+  auto* reg =
       static_cast<
-          generic::RegisterDestinationOperand<RVFpRegister::ValueType> *>(
+          generic::RegisterDestinationOperand<RVFpRegister::ValueType>*>(
           instruction->Destination(0))
           ->GetRegister();
   if (sizeof(RVFpRegister::ValueType) > sizeof(FPUInt)) {
@@ -751,64 +751,64 @@
 }
 
 // Convert from half precision to single precision.
-void RiscVZfhCvtSh(const Instruction *instruction) {
+void RiscVZfhCvtSh(const Instruction* instruction) {
   RiscVZfhCvtHelper<float, HalfFP>(
-      instruction, [](HalfFP a, FPRoundingMode rm, uint32_t &fflags) -> float {
+      instruction, [](HalfFP a, FPRoundingMode rm, uint32_t& fflags) -> float {
         return ConvertFromHalfFP<float>(a, fflags);
       });
 }
 
 // Convert from single precision to half precision.
-void RiscVZfhCvtHs(const Instruction *instruction) {
+void RiscVZfhCvtHs(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, float>(
-      instruction, [](float a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      instruction, [](float a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         return ConvertToHalfFP(a, rm, fflags);
       });
 }
 
 // Convert from half precision to double precision.
-void RiscVZfhCvtDh(const Instruction *instruction) {
+void RiscVZfhCvtDh(const Instruction* instruction) {
   RiscVZfhCvtHelper<double, HalfFP>(
-      instruction, [](HalfFP a, FPRoundingMode rm, uint32_t &fflags) -> double {
+      instruction, [](HalfFP a, FPRoundingMode rm, uint32_t& fflags) -> double {
         return ConvertFromHalfFP<double>(a, fflags);
       });
 }
 
 // Convert from double precision to half precision.
-void RiscVZfhCvtHd(const Instruction *instruction) {
+void RiscVZfhCvtHd(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, double>(
-      instruction, [](double a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      instruction, [](double a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         return ConvertToHalfFP(a, rm, fflags);
       });
 }
 
 // Add two half precision values. Do the calculation in single precision.
-void RiscVZfhFadd(const Instruction *instruction) {
+void RiscVZfhFadd(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(
       instruction, [](float a, float b) -> float { return a + b; });
 }
 
 // Subtract two half precision values. Do the calculation in single precision.
-void RiscVZfhFsub(const Instruction *instruction) {
+void RiscVZfhFsub(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(
       instruction, [](float a, float b) -> float { return a - b; });
 }
 
 // Multiply two half precision values. Do the calculation in single precision.
-void RiscVZfhFmul(const Instruction *instruction) {
+void RiscVZfhFmul(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(
       instruction, [](float a, float b) -> float { return a * b; });
 }
 
 // Divide two half precision values. Do the calculation in single precision.
-void RiscVZfhFdiv(const Instruction *instruction) {
+void RiscVZfhFdiv(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(
       instruction, [](float a, float b) -> float { return a / b; });
 }
 
 // Take the minimum of two half precision values. Do the operation in single
 // precision.
-void RiscVZfhFmin(const Instruction *instruction) {
+void RiscVZfhFmin(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(instruction,
                                       [](float a, float b) -> float {
                                         // On ARM std::fminf returns NaN if
@@ -826,7 +826,7 @@
 
 // Take the maximum of two half precision values. Do the operation in single
 // precision.
-void RiscVZfhFmax(const Instruction *instruction) {
+void RiscVZfhFmax(const Instruction* instruction) {
   RiscVZfhBinaryHelper<HalfFP, float>(instruction,
                                       [](float a, float b) -> float {
                                         // On ARM std::fmaxf returns NaN if
@@ -844,14 +844,14 @@
 
 // Calculate the square root of a half precision value. Do the operation in
 // single precision and then convert back to half precision.
-void RiscVZfhFsqrt(const Instruction *instruction) {
+void RiscVZfhFsqrt(const Instruction* instruction) {
   RiscVZfhUnaryHelper<HalfFP, float>(
       instruction, [](float a) -> float { return std::sqrt(a); });
 }
 
 // The result is the exponent and significand of the first source with the
 // sign bit of the second source.
-void RiscVZfhFsgnj(const Instruction *instruction) {
+void RiscVZfhFsgnj(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, HalfFP, HalfFP>(
       instruction, [](HalfFP a, HalfFP b) -> HalfFP {
         uint16_t mask =
@@ -863,7 +863,7 @@
 
 // The result is the exponent and significand of the first source with the
 // opposite sign bit of the second source.
-void RiscVZfhFsgnjn(const Instruction *instruction) {
+void RiscVZfhFsgnjn(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, HalfFP, HalfFP>(
       instruction, [](HalfFP a, HalfFP b) -> HalfFP {
         uint16_t mask =
@@ -875,7 +875,7 @@
 
 // The result is the exponent and significand of the first source with the
 // sign bit that is the exclusive or of the two source sign bits.
-void RiscVZfhFsgnjx(const Instruction *instruction) {
+void RiscVZfhFsgnjx(const Instruction* instruction) {
   RiscVBinaryFloatNaNBoxOp<RVFpRegister::ValueType, HalfFP, HalfFP>(
       instruction, [](HalfFP a, HalfFP b) -> HalfFP {
         uint16_t mask =
@@ -887,7 +887,7 @@
 
 // Fused multiply add in half precision. Do the operation in single precision.
 // (rs1 * rs2) + rs3
-void RiscVZfhFmadd(const Instruction *instruction) {
+void RiscVZfhFmadd(const Instruction* instruction) {
   RiscVZfhTernaryHelper<HalfFP, float>(
       instruction,
       [](float a, float b, float c) -> float { return fma(a, b, c); });
@@ -895,7 +895,7 @@
 
 // Fused multiply add in half precision. Do the operation in single precision.
 // (rs1 * rs2) - rs3
-void RiscVZfhFmsub(const Instruction *instruction) {
+void RiscVZfhFmsub(const Instruction* instruction) {
   RiscVZfhTernaryHelper<HalfFP, float>(
       instruction,
       [](float a, float b, float c) -> float { return fma(a, b, -c); });
@@ -903,7 +903,7 @@
 
 // Fused multiply add in half precision. Do the operation in single precision.
 // -(rs1 * rs2) - rs3
-void RiscVZfhFnmadd(const Instruction *instruction) {
+void RiscVZfhFnmadd(const Instruction* instruction) {
   RiscVZfhTernaryHelper<HalfFP, float>(
       instruction,
       [](float a, float b, float c) -> float { return fma(-a, b, -c); });
@@ -911,27 +911,27 @@
 
 // Fused multiply add in half precision. Do the operation in single precision.
 // -(rs1 * rs2) + rs3
-void RiscVZfhFnmsub(const Instruction *instruction) {
+void RiscVZfhFnmsub(const Instruction* instruction) {
   RiscVZfhTernaryHelper<HalfFP, float>(
       instruction,
       [](float a, float b, float c) -> float { return fma(-a, b, c); });
 }
 
 // Convert from signed 32 bit integer to half precision.
-void RiscVZfhCvtHw(const Instruction *instruction) {
+void RiscVZfhCvtHw(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, int32_t>(
       instruction,
-      [](int32_t a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      [](int32_t a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         float input_float = static_cast<float>(a);
         return ConvertToHalfFP(input_float, rm, fflags);
       });
 }
 
 // Convert from unsigned 32 bit integer to half precision.
-void RiscVZfhCvtHwu(const Instruction *instruction) {
+void RiscVZfhCvtHwu(const Instruction* instruction) {
   RiscVZfhCvtHelper<HalfFP, uint32_t>(
       instruction,
-      [](uint32_t a, FPRoundingMode rm, uint32_t &fflags) -> HalfFP {
+      [](uint32_t a, FPRoundingMode rm, uint32_t& fflags) -> HalfFP {
         float input_float = static_cast<float>(a);
         return ConvertToHalfFP(input_float, rm, fflags);
       });
@@ -939,8 +939,8 @@
 
 // TODO(b/409778536): Factor out generic unimplemented instruction semantic
 //                    function.
-void RV32VUnimplementedInstruction(const Instruction *instruction) {
-  auto *state = static_cast<RiscVState *>(instruction->state());
+void RV32VUnimplementedInstruction(const Instruction* instruction) {
+  auto* state = static_cast<RiscVState*>(instruction->state());
   state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
               *ExceptionCode::kIllegalInstruction,
               /*epc*/ instruction->address(), instruction);
diff --git a/riscv/riscv_zfh_instructions.h b/riscv/riscv_zfh_instructions.h
index 576d7f2..f26f889 100644
--- a/riscv/riscv_zfh_instructions.h
+++ b/riscv/riscv_zfh_instructions.h
@@ -30,13 +30,13 @@
 //   frs1: Float Register
 // Destination Operands:
 //   rd: Integer Register
-void RiscVZfhFMvxh(const Instruction *instruction);
+void RiscVZfhFMvxh(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFMvhx(const Instruction *instruction);
+void RiscVZfhFMvhx(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -44,7 +44,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtWh(const Instruction *instruction);
+void RiscVZfhCvtWh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -52,7 +52,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtWuh(const Instruction *instruction);
+void RiscVZfhCvtWuh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -60,7 +60,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmpeq(const Instruction *instruction);
+void RiscVZfhFcmpeq(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -68,7 +68,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmplt(const Instruction *instruction);
+void RiscVZfhFcmplt(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -76,13 +76,13 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmple(const Instruction *instruction);
+void RiscVZfhFcmple(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
 // Destination Operands:
 //   rd: Integer Register
-void RiscVZfhFclass(const Instruction *instruction);
+void RiscVZfhFclass(const Instruction* instruction);
 
 }  // namespace RV32
 
@@ -91,13 +91,13 @@
 //   frs1: Float Register
 // Destination Operands:
 //   rd: Integer Register
-void RiscVZfhFMvxh(const Instruction *instruction);
+void RiscVZfhFMvxh(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFMvhx(const Instruction *instruction);
+void RiscVZfhFMvhx(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -105,7 +105,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtWh(const Instruction *instruction);
+void RiscVZfhCvtWh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -113,7 +113,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtWuh(const Instruction *instruction);
+void RiscVZfhCvtWuh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -121,7 +121,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmpeq(const Instruction *instruction);
+void RiscVZfhFcmpeq(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -129,7 +129,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmplt(const Instruction *instruction);
+void RiscVZfhFcmplt(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -137,13 +137,13 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFcmple(const Instruction *instruction);
+void RiscVZfhFcmple(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
 // Destination Operands:
 //   rd: Integer Register
-void RiscVZfhFclass(const Instruction *instruction);
+void RiscVZfhFclass(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -151,7 +151,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtLh(const Instruction *instruction);
+void RiscVZfhCvtLh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -159,7 +159,7 @@
 // Destination Operands:
 //   rd: Integer Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtLuh(const Instruction *instruction);
+void RiscVZfhCvtLuh(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
@@ -167,7 +167,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHl(const Instruction *instruction);
+void RiscVZfhCvtHl(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
@@ -175,14 +175,14 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHlu(const Instruction *instruction);
+void RiscVZfhCvtHlu(const Instruction* instruction);
 
 }  // namespace RV64
 
 // Source Operands: *none*
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFlhChild(const Instruction *instruction);
+void RiscVZfhFlhChild(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -190,7 +190,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtSh(const Instruction *instruction);
+void RiscVZfhCvtSh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -198,7 +198,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHs(const Instruction *instruction);
+void RiscVZfhCvtHs(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -206,7 +206,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtDh(const Instruction *instruction);
+void RiscVZfhCvtDh(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -214,11 +214,11 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHd(const Instruction *instruction);
+void RiscVZfhCvtHd(const Instruction* instruction);
 
 // TODO(b/409778536): Factor out generic unimplemented instruction semantic
 //                    function.
-void RV32VUnimplementedInstruction(const Instruction *instruction);
+void RV32VUnimplementedInstruction(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -227,7 +227,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFadd(const Instruction *instruction);
+void RiscVZfhFadd(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -236,7 +236,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFsub(const Instruction *instruction);
+void RiscVZfhFsub(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -245,7 +245,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFmul(const Instruction *instruction);
+void RiscVZfhFmul(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -254,7 +254,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFdiv(const Instruction *instruction);
+void RiscVZfhFdiv(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -263,7 +263,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFmin(const Instruction *instruction);
+void RiscVZfhFmin(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -272,28 +272,28 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFmax(const Instruction *instruction);
+void RiscVZfhFmax(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
 //   frs2: Float Register
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFsgnj(const Instruction *instruction);
+void RiscVZfhFsgnj(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
 //   frs2: Float Register
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFsgnjn(const Instruction *instruction);
+void RiscVZfhFsgnjn(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
 //   frs2: Float Register
 // Destination Operands:
 //   frd: Float Register
-void RiscVZfhFsgnjx(const Instruction *instruction);
+void RiscVZfhFsgnjx(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -301,7 +301,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFsqrt(const Instruction *instruction);
+void RiscVZfhFsqrt(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -311,7 +311,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFmadd(const Instruction *instruction);
+void RiscVZfhFmadd(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -321,7 +321,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFmsub(const Instruction *instruction);
+void RiscVZfhFmsub(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -331,7 +331,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFnmadd(const Instruction *instruction);
+void RiscVZfhFnmadd(const Instruction* instruction);
 
 // Source Operands:
 //   frs1: Float Register
@@ -341,7 +341,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhFnmsub(const Instruction *instruction);
+void RiscVZfhFnmsub(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
@@ -349,7 +349,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHw(const Instruction *instruction);
+void RiscVZfhCvtHw(const Instruction* instruction);
 
 // Source Operands:
 //   rs1: Integer Register
@@ -357,7 +357,7 @@
 // Destination Operands:
 //   frd: Float Register
 //   fflags: Accrued Exception Flags field in FCSR
-void RiscVZfhCvtHwu(const Instruction *instruction);
+void RiscVZfhCvtHwu(const Instruction* instruction);
 
 }  // namespace riscv
 }  // namespace sim
diff --git a/riscv/riscv_zhintpause_instructions.cc b/riscv/riscv_zhintpause_instructions.cc
index 0421184..1725634 100644
--- a/riscv/riscv_zhintpause_instructions.cc
+++ b/riscv/riscv_zhintpause_instructions.cc
@@ -6,6 +6,6 @@
 
 using ::mpact::sim::generic::Instruction;
 
-void RiscVPause(const Instruction *inst) { /* empty */ }
+void RiscVPause(const Instruction* inst) { /* empty */ }
 
 }  // namespace mpact::sim::riscv
diff --git a/riscv/riscv_zhintpause_instructions.h b/riscv/riscv_zhintpause_instructions.h
index e682d10..35f9e19 100644
--- a/riscv/riscv_zhintpause_instructions.h
+++ b/riscv/riscv_zhintpause_instructions.h
@@ -25,7 +25,7 @@
 using ::mpact::sim::generic::Instruction;
 
 // This instruction semantic function takes no source or destination operands.
-void RiscVPause(const Instruction *inst);
+void RiscVPause(const Instruction* inst);
 
 }  // namespace mpact::sim::riscv
 
diff --git a/riscv/riscv_zicbop_instructions.cc b/riscv/riscv_zicbop_instructions.cc
index e8a68e3..66269e4 100644
--- a/riscv/riscv_zicbop_instructions.cc
+++ b/riscv/riscv_zicbop_instructions.cc
@@ -27,18 +27,18 @@
 namespace RV32 {
 
 // These instructions are not implemented for now.
-void RiscVPrefetchI(const Instruction *inst) { /* empty */ }
-void RiscVPrefetchR(const Instruction *inst) { /* empty */ }
-void RiscVPrefetchW(const Instruction *inst) { /* empty */ }
+void RiscVPrefetchI(const Instruction* inst) { /* empty */ }
+void RiscVPrefetchR(const Instruction* inst) { /* empty */ }
+void RiscVPrefetchW(const Instruction* inst) { /* empty */ }
 
 }  // namespace RV32
 
 namespace RV64 {
 
 // These instructions are not implemented for now.
-void RiscVPrefetchI(const Instruction *inst) { /* empty */ }
-void RiscVPrefetchR(const Instruction *inst) { /* empty */ }
-void RiscVPrefetchW(const Instruction *inst) { /* empty */ }
+void RiscVPrefetchI(const Instruction* inst) { /* empty */ }
+void RiscVPrefetchR(const Instruction* inst) { /* empty */ }
+void RiscVPrefetchW(const Instruction* inst) { /* empty */ }
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_zicbop_instructions.h b/riscv/riscv_zicbop_instructions.h
index f603a37..6b5ba37 100644
--- a/riscv/riscv_zicbop_instructions.h
+++ b/riscv/riscv_zicbop_instructions.h
@@ -28,9 +28,9 @@
 
 // Each of these instructions take two source operands, rs1 and a 12 bit
 // immediate offset.
-void RiscVPrefetchI(const Instruction *inst);
-void RiscVPrefetchR(const Instruction *inst);
-void RiscVPrefetchW(const Instruction *inst);
+void RiscVPrefetchI(const Instruction* inst);
+void RiscVPrefetchR(const Instruction* inst);
+void RiscVPrefetchW(const Instruction* inst);
 
 }  // namespace RV32
 
@@ -38,9 +38,9 @@
 
 // Each of these instructions take two source operands, rs1 and a 12 bit
 // immediate offset.
-void RiscVPrefetchI(const Instruction *inst);
-void RiscVPrefetchR(const Instruction *inst);
-void RiscVPrefetchW(const Instruction *inst);
+void RiscVPrefetchI(const Instruction* inst);
+void RiscVPrefetchR(const Instruction* inst);
+void RiscVPrefetchW(const Instruction* inst);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_zicond_instructions.cc b/riscv/riscv_zicond_instructions.cc
index a81bccd..9db5ad0 100644
--- a/riscv/riscv_zicond_instructions.cc
+++ b/riscv/riscv_zicond_instructions.cc
@@ -27,14 +27,14 @@
 
 // If rs2 is zero, set the destination register to 0, otherwise copy rs1 to
 // the destination register.
-void RiscVCzeroEqz(const generic::Instruction *inst) {
+void RiscVCzeroEqz(const generic::Instruction* inst) {
   RiscVBinaryOp<RegType, RegValue, RegValue>(
       inst, [](RegValue rs1, RegValue rs2) { return rs2 == 0 ? 0 : rs1; });
 }
 
 // If rs2 is non-zero, set the destination register to 0, otherwise copy rs1 to
 // the destination register.
-void RiscVCzeroNez(const generic::Instruction *inst) {
+void RiscVCzeroNez(const generic::Instruction* inst) {
   RiscVBinaryOp<RegType, RegValue, RegValue>(
       inst, [](RegValue rs1, RegValue rs2) { return rs2 != 0 ? 0 : rs1; });
 }
@@ -48,14 +48,14 @@
 
 // If rs2 is zero, set the destination register to 0, otherwise copy rs1 to
 // the destination register.
-void RiscVCzeroEqz(const generic::Instruction *inst) {
+void RiscVCzeroEqz(const generic::Instruction* inst) {
   RiscVBinaryOp<RegType, RegValue, RegValue>(
       inst, [](RegValue rs1, RegValue rs2) { return rs2 == 0 ? 0 : rs1; });
 }
 
 // If rs2 is non-zero, set the destination register to 0, otherwise copy rs1 to
 // the destination register.
-void RiscVCzeroNez(const generic::Instruction *inst) {
+void RiscVCzeroNez(const generic::Instruction* inst) {
   RiscVBinaryOp<RegType, RegValue, RegValue>(
       inst, [](RegValue rs1, RegValue rs2) { return rs2 != 0 ? 0 : rs1; });
 }
diff --git a/riscv/riscv_zicond_instructions.h b/riscv/riscv_zicond_instructions.h
index f70b85b..5078b5c 100644
--- a/riscv/riscv_zicond_instructions.h
+++ b/riscv/riscv_zicond_instructions.h
@@ -28,15 +28,15 @@
 
 namespace RV32 {
 
-void RiscVCzeroEqz(const Instruction *inst);
-void RiscVCzeroNez(const Instruction *inst);
+void RiscVCzeroEqz(const Instruction* inst);
+void RiscVCzeroNez(const Instruction* inst);
 
 }  // namespace RV32
 
 namespace RV64 {
 
-void RiscVCzeroEqz(const Instruction *inst);
-void RiscVCzeroNez(const Instruction *inst);
+void RiscVCzeroEqz(const Instruction* inst);
+void RiscVCzeroNez(const Instruction* inst);
 
 }  // namespace RV64
 
diff --git a/riscv/riscv_zicsr_instructions.cc b/riscv/riscv_zicsr_instructions.cc
index b349f05..323b1f7 100644
--- a/riscv/riscv_zicsr_instructions.cc
+++ b/riscv/riscv_zicsr_instructions.cc
@@ -32,22 +32,22 @@
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
 template <typename T>
-inline T ReadCsr(RiscVCsrInterface *) {}
+inline T ReadCsr(RiscVCsrInterface*) {}
 
 template <>
-inline uint32_t ReadCsr<uint32_t>(RiscVCsrInterface *csr) {
+inline uint32_t ReadCsr<uint32_t>(RiscVCsrInterface* csr) {
   return csr->AsUint32();
 }
 template <>
-inline uint64_t ReadCsr<uint64_t>(RiscVCsrInterface *csr) {
+inline uint64_t ReadCsr<uint64_t>(RiscVCsrInterface* csr) {
   return csr->AsUint64();
 }
 
 // Helper function to check that the CSR permission is valid. If not, throw
 // an illegal instruction exception.
-bool CheckCsrPermission(int csr_index, Instruction *instruction) {
+bool CheckCsrPermission(int csr_index, Instruction* instruction) {
   auto required_mode = (csr_index >> 8) & 0x3;
-  auto *state = static_cast<RiscVState *>(instruction->state());
+  auto* state = static_cast<RiscVState*>(instruction->state());
   auto current_mode = state->privilege_mode();
   // If the privilege mode is too low, throw an exception.
   if (*current_mode < required_mode) {
@@ -70,9 +70,9 @@
 
 // Read the CSR, write a new value back.
 template <typename T>
-static inline void RVZiCsrrw(Instruction *instruction) {
+static inline void RVZiCsrrw(Instruction* instruction) {
   // Get a handle to the state instance.
-  auto state = static_cast<RiscVState *>(instruction->state());
+  auto state = static_cast<RiscVState*>(instruction->state());
   // Get the csr index.
   int csr_index = instruction->Source(1)->AsInt32(0);
   if (!CheckCsrPermission(csr_index, instruction)) return;
@@ -88,9 +88,9 @@
   }
   // Get the new value.
   T new_value = generic::GetInstructionSource<T>(instruction, 0);
-  auto *csr = result.value();
+  auto* csr = result.value();
   // Update the register.
-  auto *reg = static_cast<generic::RegisterDestinationOperand<T> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<T>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<T>(0, ReadCsr<T>(csr));
@@ -100,9 +100,9 @@
 
 // Read the CSR, set the bits specified by the new value and write back.
 template <typename T>
-static inline void RVZiCsrrs(Instruction *instruction) {
+static inline void RVZiCsrrs(Instruction* instruction) {
   // Get a handle to the state instance.
-  auto state = static_cast<RiscVState *>(instruction->state());
+  auto state = static_cast<RiscVState*>(instruction->state());
   // Get the csr index.
   int csr_index = instruction->Source(1)->AsInt32(0);
   if (!CheckCsrPermission(csr_index, instruction)) return;
@@ -118,9 +118,9 @@
   }
   // Get the new value.
   T new_value = generic::GetInstructionSource<T>(instruction, 0);
-  auto *csr = result.value();
+  auto* csr = result.value();
   // Update the register.
-  auto *reg = static_cast<generic::RegisterDestinationOperand<T> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<T>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<T>(0, ReadCsr<T>(csr));
@@ -130,9 +130,9 @@
 
 // Read the CSR, clear the bits specified by the new value and write back.
 template <typename T>
-static inline void RVZiCsrrc(Instruction *instruction) {
+static inline void RVZiCsrrc(Instruction* instruction) {
   // Get a handle to the state instance.
-  auto state = static_cast<RiscVState *>(instruction->state());
+  auto state = static_cast<RiscVState*>(instruction->state());
   // Get the csr index.
   int csr_index = instruction->Source(1)->AsInt32(0);
   if (!CheckCsrPermission(csr_index, instruction)) return;
@@ -148,9 +148,9 @@
   }
   // Get the new value.
   T new_value = generic::GetInstructionSource<T>(instruction, 0);
-  auto *csr = result.value();
+  auto* csr = result.value();
   // Write the current value of the CSR to the destination register.
-  auto *reg = static_cast<generic::RegisterDestinationOperand<T> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<T>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   auto csr_val = ReadCsr<T>(csr);
@@ -161,9 +161,9 @@
 
 // Do not read the CSR, just write the new value back.
 template <typename T>
-static inline void RVZiCsrrwNr(Instruction *instruction) {
+static inline void RVZiCsrrwNr(Instruction* instruction) {
   // Get a handle to the state instance.
-  auto state = static_cast<RiscVState *>(instruction->state());
+  auto state = static_cast<RiscVState*>(instruction->state());
   // Get the csr index.
   int csr_index = instruction->Source(1)->AsInt32(0);
   if (!CheckCsrPermission(csr_index, instruction)) return;
@@ -176,7 +176,7 @@
                                ": ", result.status().message());
     return;
   }
-  auto *csr = result.value();
+  auto* csr = result.value();
   // Write the new value to the csr.
   T new_value = generic::GetInstructionSource<T>(instruction, 0);
   csr->Write(new_value);
@@ -184,9 +184,9 @@
 
 // Do not write a value back to the CSR, just read it.
 template <typename T>
-static inline void RVZiCsrrNw(Instruction *instruction) {
+static inline void RVZiCsrrNw(Instruction* instruction) {
   // Get a handle to the state instance.
-  auto state = static_cast<RiscVState *>(instruction->state());
+  auto state = static_cast<RiscVState*>(instruction->state());
   // Get the csr index.
   int csr_index = instruction->Source(0)->AsInt32(0);
   if (!CheckCsrPermission(csr_index, instruction)) return;
@@ -200,8 +200,8 @@
     return;
   }
   // Get the CSR object.
-  auto *csr = result.value();
-  auto *reg = static_cast<generic::RegisterDestinationOperand<T> *>(
+  auto* csr = result.value();
+  auto* reg = static_cast<generic::RegisterDestinationOperand<T>*>(
                   instruction->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<T>(0, ReadCsr<T>(csr));
@@ -213,21 +213,21 @@
 using UintReg = RegisterType::ValueType;
 
 // Read the CSR, write a new value back.
-void RiscVZiCsrrw(Instruction *instruction) { RVZiCsrrw<UintReg>(instruction); }
+void RiscVZiCsrrw(Instruction* instruction) { RVZiCsrrw<UintReg>(instruction); }
 
 // Read the CSR, set the bits specified by the new value and write back.
-void RiscVZiCsrrs(Instruction *instruction) { RVZiCsrrs<UintReg>(instruction); }
+void RiscVZiCsrrs(Instruction* instruction) { RVZiCsrrs<UintReg>(instruction); }
 
 // Read the CSR, clear the bits specified by the new value and write back.
-void RiscVZiCsrrc(Instruction *instruction) { RVZiCsrrc<UintReg>(instruction); }
+void RiscVZiCsrrc(Instruction* instruction) { RVZiCsrrc<UintReg>(instruction); }
 
 // Do not read the CSR, just write the new value back.
-void RiscVZiCsrrwNr(Instruction *instruction) {
+void RiscVZiCsrrwNr(Instruction* instruction) {
   RVZiCsrrwNr<UintReg>(instruction);
 }
 
 // Do not write a value back to the CSR, just read it.
-void RiscVZiCsrrNw(Instruction *instruction) {
+void RiscVZiCsrrNw(Instruction* instruction) {
   RVZiCsrrNw<UintReg>(instruction);
 }
 
@@ -239,21 +239,21 @@
 using UintReg = RegisterType::ValueType;
 
 // Read the CSR, write a new value back.
-void RiscVZiCsrrw(Instruction *instruction) { RVZiCsrrw<UintReg>(instruction); }
+void RiscVZiCsrrw(Instruction* instruction) { RVZiCsrrw<UintReg>(instruction); }
 
 // Read the CSR, set the bits specified by the new value and write back.
-void RiscVZiCsrrs(Instruction *instruction) { RVZiCsrrs<UintReg>(instruction); }
+void RiscVZiCsrrs(Instruction* instruction) { RVZiCsrrs<UintReg>(instruction); }
 
 // Read the CSR, clear the bits specified by the new value and write back.
-void RiscVZiCsrrc(Instruction *instruction) { RVZiCsrrc<UintReg>(instruction); }
+void RiscVZiCsrrc(Instruction* instruction) { RVZiCsrrc<UintReg>(instruction); }
 
 // Do not read the CSR, just write the new value back.
-void RiscVZiCsrrwNr(Instruction *instruction) {
+void RiscVZiCsrrwNr(Instruction* instruction) {
   RVZiCsrrwNr<UintReg>(instruction);
 }
 
 // Do not write a value back to the CSR, just read it.
-void RiscVZiCsrrNw(Instruction *instruction) {
+void RiscVZiCsrrNw(Instruction* instruction) {
   RVZiCsrrNw<UintReg>(instruction);
 }
 
diff --git a/riscv/riscv_zicsr_instructions.h b/riscv/riscv_zicsr_instructions.h
index 729186c..3d7b9f8 100644
--- a/riscv/riscv_zicsr_instructions.h
+++ b/riscv/riscv_zicsr_instructions.h
@@ -24,19 +24,19 @@
 using ::mpact::sim::generic::Instruction;
 
 namespace RV32 {
-void RiscVZiCsrrw(Instruction *instruction);
-void RiscVZiCsrrs(Instruction *instruction);
-void RiscVZiCsrrc(Instruction *instruction);
-void RiscVZiCsrrwNr(Instruction *instruction);
-void RiscVZiCsrrNw(Instruction *instruction);
+void RiscVZiCsrrw(Instruction* instruction);
+void RiscVZiCsrrs(Instruction* instruction);
+void RiscVZiCsrrc(Instruction* instruction);
+void RiscVZiCsrrwNr(Instruction* instruction);
+void RiscVZiCsrrNw(Instruction* instruction);
 }  // namespace RV32
 
 namespace RV64 {
-void RiscVZiCsrrw(Instruction *instruction);
-void RiscVZiCsrrs(Instruction *instruction);
-void RiscVZiCsrrc(Instruction *instruction);
-void RiscVZiCsrrwNr(Instruction *instruction);
-void RiscVZiCsrrNw(Instruction *instruction);
+void RiscVZiCsrrw(Instruction* instruction);
+void RiscVZiCsrrs(Instruction* instruction);
+void RiscVZiCsrrc(Instruction* instruction);
+void RiscVZiCsrrwNr(Instruction* instruction);
+void RiscVZiCsrrNw(Instruction* instruction);
 }  // namespace RV64
 
 }  // namespace riscv
diff --git a/riscv/riscv_zihintntl_instructions.cc b/riscv/riscv_zihintntl_instructions.cc
index 802139f..5049fc1 100644
--- a/riscv/riscv_zihintntl_instructions.cc
+++ b/riscv/riscv_zihintntl_instructions.cc
@@ -6,9 +6,9 @@
 
 using ::mpact::sim::generic::Instruction;
 
-void RiscVNtlP1(const Instruction *) { /* empty */ }
-void RiscVNtlPall(const Instruction *) { /* empty */ }
-void RiscVNtlS1(const Instruction *) { /* empty */ }
-void RiscVNtlAll(const Instruction *) { /* empty */ }
+void RiscVNtlP1(const Instruction*) { /* empty */ }
+void RiscVNtlPall(const Instruction*) { /* empty */ }
+void RiscVNtlS1(const Instruction*) { /* empty */ }
+void RiscVNtlAll(const Instruction*) { /* empty */ }
 
 }  // namespace mpact::sim::riscv
diff --git a/riscv/riscv_zihintntl_instructions.h b/riscv/riscv_zihintntl_instructions.h
index e08bd1f..b6589be 100644
--- a/riscv/riscv_zihintntl_instructions.h
+++ b/riscv/riscv_zihintntl_instructions.h
@@ -25,10 +25,10 @@
 using ::mpact::sim::generic::Instruction;
 
 // These instructions take no source or destination operands.
-void RiscVNtlP1(const Instruction *);
-void RiscVNtlPall(const Instruction *);
-void RiscVNtlS1(const Instruction *);
-void RiscVNtlAll(const Instruction *);
+void RiscVNtlP1(const Instruction*);
+void RiscVNtlPall(const Instruction*);
+void RiscVNtlS1(const Instruction*);
+void RiscVNtlAll(const Instruction*);
 
 }  // namespace mpact::sim::riscv
 
diff --git a/riscv/riscv_zimop_instructions.cc b/riscv/riscv_zimop_instructions.cc
index 27b3810..133b77b 100644
--- a/riscv/riscv_zimop_instructions.cc
+++ b/riscv/riscv_zimop_instructions.cc
@@ -27,9 +27,9 @@
 using RegType = RV32Register;
 using RegValue = typename RegType::ValueType;
 
-void RiscVMop(const Instruction *inst) {
+void RiscVMop(const Instruction* inst) {
   // Get the destination register and set it to zero.
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegValue>*>(
                   inst->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<RegValue>(0, 0);
@@ -42,9 +42,9 @@
 using RegType = RV64Register;
 using RegValue = typename RegType::ValueType;
 
-void RiscVMop(const Instruction *inst) {
+void RiscVMop(const Instruction* inst) {
   // Get the destination register and set it to zero.
-  auto *reg = static_cast<generic::RegisterDestinationOperand<RegValue> *>(
+  auto* reg = static_cast<generic::RegisterDestinationOperand<RegValue>*>(
                   inst->Destination(0))
                   ->GetRegister();
   reg->data_buffer()->template Set<RegValue>(0, 0);
diff --git a/riscv/riscv_zimop_instructions.h b/riscv/riscv_zimop_instructions.h
index ee0e3c2..d7a21ac 100644
--- a/riscv/riscv_zimop_instructions.h
+++ b/riscv/riscv_zimop_instructions.h
@@ -27,7 +27,7 @@
 
 // This semantic function ignores the source operand(s) and takes one
 // destination operand.
-void RiscVMop(const Instruction *inst);
+void RiscVMop(const Instruction* inst);
 
 }  // namespace RV32
 
@@ -35,7 +35,7 @@
 
 // This semantic function ignores the source operand(s) and takes one
 // destination operand.
-void RiscVMop(const Instruction *inst);
+void RiscVMop(const Instruction* inst);
 
 }  // namespace RV64
 
diff --git a/riscv/rv32g_sim.cc b/riscv/rv32g_sim.cc
index 36e945e..e246cc7 100644
--- a/riscv/rv32g_sim.cc
+++ b/riscv/rv32g_sim.cc
@@ -160,7 +160,7 @@
 constexpr char kStackSizeSymbolName[] = "__stack_size";
 
 // Static pointer to the top instance. Used by the control-C handler.
-static mpact::sim::riscv::RiscVTop *top = nullptr;
+static mpact::sim::riscv::RiscVTop* top = nullptr;
 
 // Control-c handler to interrupt any running simulation.
 static void sim_sigint_handler(int arg) {
@@ -175,8 +175,8 @@
 using ::mpact::sim::riscv::RiscVTop;
 
 // Helper function to get the magic semihosting addresses from the loader.
-static bool GetMagicAddresses(mpact::sim::util::ElfProgramLoader *loader,
-                              RiscV32HtifSemiHost::SemiHostAddresses *magic) {
+static bool GetMagicAddresses(mpact::sim::util::ElfProgramLoader* loader,
+                              RiscV32HtifSemiHost::SemiHostAddresses* magic) {
   auto result = loader->GetSymbol("tohost_ready");
   if (!result.ok()) return false;
   magic->tohost_ready = result.value().first;
@@ -200,8 +200,8 @@
 // debug command shell.
 static bool PrintRegisters(
     absl::string_view input,
-    const mpact::sim::riscv::DebugCommandShell::CoreAccess &core_access,
-    std::string &output) {
+    const mpact::sim::riscv::DebugCommandShell::CoreAccess& core_access,
+    std::string& output) {
   static const LazyRE2 reg_info_re{R"(\s*xyzreg\s+info\s*)"};
   if (!RE2::FullMatch(input, *reg_info_re)) {
     return false;
@@ -222,7 +222,7 @@
   return true;
 }
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   int return_code = 0;
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
@@ -244,9 +244,9 @@
       full_file_name.substr(full_file_name.find_last_of('/') + 1);
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
-  auto *memory = new mpact::sim::util::FlatDemandMemory();
-  mpact::sim::util::MemoryWatcher *memory_watcher = nullptr;
-  mpact::sim::util::AtomicMemory *atomic_memory = nullptr;
+  auto* memory = new mpact::sim::util::FlatDemandMemory();
+  mpact::sim::util::MemoryWatcher* memory_watcher = nullptr;
+  mpact::sim::util::AtomicMemory* atomic_memory = nullptr;
   if (absl::GetFlag(FLAGS_exit_on_tohost)) {
     memory_watcher = new mpact::sim::util::MemoryWatcher(memory);
     atomic_memory = new mpact::sim::util::AtomicMemory(memory_watcher);
@@ -262,7 +262,7 @@
     return -1;
   }
 
-  mpact::sim::util::MemoryInterface *memory_interface = memory;
+  mpact::sim::util::MemoryInterface* memory_interface = memory;
   if (memory_watcher != nullptr) {
     memory_interface = memory_watcher;
   }
@@ -273,7 +273,7 @@
   RiscVFPState rv_fp_state(rv_state.csr_set(), &rv_state);
   rv_state.set_rv_fp(&rv_fp_state);
   // Create the instruction decoder.
-  mpact::sim::generic::DecoderInterface *rv_decoder = nullptr;
+  mpact::sim::generic::DecoderInterface* rv_decoder = nullptr;
   if (absl::GetFlag(FLAGS_bitmanip)) {
     rv_decoder = new RiscV32GBitmanipDecoder(&rv_state, memory);
   } else {
@@ -301,7 +301,7 @@
     ComponentValueEntry icache_value;
     icache_value.set_name("icache");
     icache_value.set_string_value(absl::GetFlag(FLAGS_icache));
-    auto *cfg = riscv_top.GetConfig("icache");
+    auto* cfg = riscv_top.GetConfig("icache");
     auto status = cfg->Import(&icache_value);
     if (!status.ok()) return -1;
   }
@@ -310,17 +310,17 @@
     ComponentValueEntry dcache_value;
     dcache_value.set_name("dcache");
     dcache_value.set_string_value(absl::GetFlag(FLAGS_dcache));
-    auto *cfg = riscv_top.GetConfig("dcache");
+    auto* cfg = riscv_top.GetConfig("dcache");
     auto status = cfg->Import(&dcache_value);
     if (!status.ok()) return -1;
     // Hook the cache into the memory port.
-    auto *dcache = riscv_top.dcache();
+    auto* dcache = riscv_top.dcache();
     dcache->set_memory(riscv_top.state()->memory());
     riscv_top.state()->set_memory(dcache);
   }
 
   if (absl::GetFlag(FLAGS_exit_on_ecall)) {
-    rv_state.set_on_ecall([&riscv_top](const Instruction *inst) -> bool {
+    rv_state.set_on_ecall([&riscv_top](const Instruction* inst) -> bool {
       riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, inst);
       return true;
     });
@@ -334,7 +334,7 @@
           [&riscv_top, tohost_addr, memory, &rv_state, &return_code, quiet](
               uint64_t, int) -> void {
             riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, nullptr);
-            auto *db = rv_state.db_factory()->Allocate<uint32_t>(1);
+            auto* db = rv_state.db_factory()->Allocate<uint32_t>(1);
             memory->Load(tohost_addr, db, nullptr, nullptr);
             auto word = db->Get<uint32_t>(0);
             db->DecRef();
@@ -413,7 +413,7 @@
     }
   }
 
-  RiscV32HtifSemiHost *htif_semihost = nullptr;
+  RiscV32HtifSemiHost* htif_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_htif)) {
     // Add htif semihosting.
     RiscV32HtifSemiHost::SemiHostAddresses magic_addresses;
@@ -435,14 +435,14 @@
     }
   }
 
-  RiscVArmSemihost *arm_semihost = nullptr;
+  RiscVArmSemihost* arm_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_arm)) {
     // Add ARM semihosting.
     arm_semihost = new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord32,
                                         memory, memory);
     arm_semihost->SetCmdLine(arg_vec);
     riscv_top.state()->AddEbreakHandler(
-        [arm_semihost](const Instruction *inst) -> bool {
+        [arm_semihost](const Instruction* inst) -> bool {
           if (arm_semihost->IsSemihostingCall(inst)) {
             arm_semihost->OnEBreak(inst);
             return true;
diff --git a/riscv/rv32g_test_sim.cc b/riscv/rv32g_test_sim.cc
index 00dac5e..15d6d6d 100644
--- a/riscv/rv32g_test_sim.cc
+++ b/riscv/rv32g_test_sim.cc
@@ -60,7 +60,7 @@
 ABSL_FLAG(std::optional<std::string>, dump_signature, std::nullopt,
           "Dump signature file name (riscv torture test)");
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
   if (arg_vec.size() > 2) {
@@ -73,8 +73,8 @@
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
   mpact::sim::util::FlatDemandMemory memory;
-  auto *watcher = new mpact::sim::util::MemoryWatcher(&memory);
-  auto *atomic_memory = new mpact::sim::util::AtomicMemory(watcher);
+  auto* watcher = new mpact::sim::util::MemoryWatcher(&memory);
+  auto* atomic_memory = new mpact::sim::util::AtomicMemory(watcher);
   // Load the elf segments into memory.
   mpact::sim::util::ElfProgramLoader elf_loader(&memory);
   auto load_result = elf_loader.LoadProgram(full_file_name);
@@ -190,7 +190,7 @@
       uint64_t begin_sig = begin_res.value().first;
       uint64_t end_sig = end_res.value().first;
       uint64_t length = end_sig - begin_sig;
-      uint64_t *buffer = new uint64_t[length >> 3];
+      uint64_t* buffer = new uint64_t[length >> 3];
       auto status = riscv_top.ReadMemory(begin_sig, buffer, length);
       for (int i = 0; i < length >> 3; ++i) {
         sig_file << std::hex << buffer[i] << std::endl;
diff --git a/riscv/rv32gv_sim.cc b/riscv/rv32gv_sim.cc
index c5b1cd3..cac54a3 100644
--- a/riscv/rv32gv_sim.cc
+++ b/riscv/rv32gv_sim.cc
@@ -161,7 +161,7 @@
 constexpr char kStackSizeSymbolName[] = "__stack_size";
 
 // Static pointer to the top instance. Used by the control-C handler.
-static mpact::sim::riscv::RiscVTop *top = nullptr;
+static mpact::sim::riscv::RiscVTop* top = nullptr;
 
 // Control-c handler to interrupt any running simulation.
 static void sim_sigint_handler(int arg) {
@@ -176,8 +176,8 @@
 using ::mpact::sim::riscv::RiscVTop;
 
 // Helper function to get the magic semihosting addresses from the loader.
-static bool GetMagicAddresses(mpact::sim::util::ElfProgramLoader *loader,
-                              RiscV32HtifSemiHost::SemiHostAddresses *magic) {
+static bool GetMagicAddresses(mpact::sim::util::ElfProgramLoader* loader,
+                              RiscV32HtifSemiHost::SemiHostAddresses* magic) {
   auto result = loader->GetSymbol("tohost_ready");
   if (!result.ok()) return false;
   magic->tohost_ready = result.value().first;
@@ -201,8 +201,8 @@
 // debug command shell.
 static bool PrintRegisters(
     absl::string_view input,
-    const mpact::sim::riscv::DebugCommandShell::CoreAccess &core_access,
-    std::string &output) {
+    const mpact::sim::riscv::DebugCommandShell::CoreAccess& core_access,
+    std::string& output) {
   static const LazyRE2 reg_info_re{R"(\s*xyzreg\s+info\s*)"};
   if (!RE2::FullMatch(input, *reg_info_re)) {
     return false;
@@ -223,7 +223,7 @@
   return true;
 }
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   int return_code = 0;
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
@@ -245,9 +245,9 @@
       full_file_name.substr(full_file_name.find_last_of('/') + 1);
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
-  auto *memory = new mpact::sim::util::FlatDemandMemory();
-  mpact::sim::util::MemoryWatcher *memory_watcher = nullptr;
-  mpact::sim::util::AtomicMemory *atomic_memory = nullptr;
+  auto* memory = new mpact::sim::util::FlatDemandMemory();
+  mpact::sim::util::MemoryWatcher* memory_watcher = nullptr;
+  mpact::sim::util::AtomicMemory* atomic_memory = nullptr;
   if (absl::GetFlag(FLAGS_exit_on_tohost)) {
     memory_watcher = new mpact::sim::util::MemoryWatcher(memory);
     atomic_memory = new mpact::sim::util::AtomicMemory(memory_watcher);
@@ -263,7 +263,7 @@
     return -1;
   }
 
-  mpact::sim::util::MemoryInterface *memory_interface = memory;
+  mpact::sim::util::MemoryInterface* memory_interface = memory;
   if (memory_watcher != nullptr) {
     memory_interface = memory_watcher;
   }
@@ -274,7 +274,7 @@
   RiscVVectorState rvv_state(&rv_state, 16 /*vector byte length*/);
   rv_state.set_rv_fp(&rv_fp_state);
   // Create the instruction decoder.
-  mpact::sim::generic::DecoderInterface *rv_decoder = nullptr;
+  mpact::sim::generic::DecoderInterface* rv_decoder = nullptr;
   if (absl::GetFlag(FLAGS_bitmanip)) {
     rv_decoder = new RiscV32GZBVecDecoder(&rv_state, memory);
   } else {
@@ -299,7 +299,7 @@
   RiscVTop riscv_top("RiscV32GVSim", &rv_state, rv_decoder);
 
   if (absl::GetFlag(FLAGS_exit_on_ecall)) {
-    rv_state.set_on_ecall([&riscv_top](const Instruction *inst) -> bool {
+    rv_state.set_on_ecall([&riscv_top](const Instruction* inst) -> bool {
       riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, inst);
       return true;
     });
@@ -314,7 +314,7 @@
           [&riscv_top, tohost_addr, memory, &rv_state, &return_code, quiet](
               uint64_t, int) -> void {
             riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, nullptr);
-            auto *db = rv_state.db_factory()->Allocate<uint32_t>(1);
+            auto* db = rv_state.db_factory()->Allocate<uint32_t>(1);
             memory->Load(tohost_addr, db, nullptr, nullptr);
             auto word = db->Get<uint32_t>(0);
             db->DecRef();
@@ -394,7 +394,7 @@
     }
   }
 
-  RiscV32HtifSemiHost *htif_semihost = nullptr;
+  RiscV32HtifSemiHost* htif_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_htif)) {
     // Add htif semihosting.
     RiscV32HtifSemiHost::SemiHostAddresses magic_addresses;
@@ -416,14 +416,14 @@
     }
   }
 
-  RiscVArmSemihost *arm_semihost = nullptr;
+  RiscVArmSemihost* arm_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_arm)) {
     // Add ARM semihosting.
     arm_semihost = new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord32,
                                         memory, memory);
     arm_semihost->SetCmdLine(arg_vec);
     riscv_top.state()->AddEbreakHandler(
-        [arm_semihost](const Instruction *inst) -> bool {
+        [arm_semihost](const Instruction* inst) -> bool {
           if (arm_semihost->IsSemihostingCall(inst)) {
             arm_semihost->OnEBreak(inst);
             return true;
diff --git a/riscv/rv64g_sim.cc b/riscv/rv64g_sim.cc
index 5f56635..d2ac4c5 100644
--- a/riscv/rv64g_sim.cc
+++ b/riscv/rv64g_sim.cc
@@ -150,7 +150,7 @@
 constexpr char kStackSizeSymbolName[] = "__stack_size";
 
 // Static pointer to the top instance. Used by the control-C handler.
-static mpact::sim::riscv::RiscVTop *top = nullptr;
+static mpact::sim::riscv::RiscVTop* top = nullptr;
 
 // Control-c handler to interrupt any running simulation.
 static void sim_sigint_handler(int arg) {
@@ -168,8 +168,8 @@
 // debug command shell.
 static bool PrintRegisters(
     absl::string_view input,
-    const mpact::sim::riscv::DebugCommandShell::CoreAccess &core_access,
-    std::string &output) {
+    const mpact::sim::riscv::DebugCommandShell::CoreAccess& core_access,
+    std::string& output) {
   static const LazyRE2 reg_info_re{R"(\s*reg\s+info\s*)"};
   if (!RE2::FullMatch(input, *reg_info_re)) {
     return false;
@@ -190,7 +190,7 @@
   return true;
 }
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   int return_code = 0;
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
@@ -211,9 +211,9 @@
       full_file_name.substr(full_file_name.find_last_of('/') + 1);
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
-  auto *memory = new mpact::sim::util::FlatDemandMemory();
-  mpact::sim::util::MemoryWatcher *memory_watcher = nullptr;
-  mpact::sim::util::AtomicMemory *atomic_memory = nullptr;
+  auto* memory = new mpact::sim::util::FlatDemandMemory();
+  mpact::sim::util::MemoryWatcher* memory_watcher = nullptr;
+  mpact::sim::util::AtomicMemory* atomic_memory = nullptr;
   if (absl::GetFlag(FLAGS_exit_on_tohost)) {
     memory_watcher = new mpact::sim::util::MemoryWatcher(memory);
     atomic_memory = new mpact::sim::util::AtomicMemory(memory_watcher);
@@ -230,7 +230,7 @@
     return -1;
   }
 
-  mpact::sim::util::MemoryInterface *memory_interface = memory;
+  mpact::sim::util::MemoryInterface* memory_interface = memory;
   if (memory_watcher != nullptr) {
     memory_interface = memory_watcher;
   }
@@ -262,7 +262,7 @@
   RiscVTop riscv_top("RiscV32Sim", &rv_state, &rv_decoder);
 
   if (absl::GetFlag(FLAGS_exit_on_ecall)) {
-    rv_state.set_on_ecall([&riscv_top](const Instruction *inst) -> bool {
+    rv_state.set_on_ecall([&riscv_top](const Instruction* inst) -> bool {
       riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, inst);
       return true;
     });
@@ -277,7 +277,7 @@
           [&riscv_top, tohost_addr, memory, &rv_state, &return_code, quiet](
               uint64_t, int) -> void {
             riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, nullptr);
-            auto *db = rv_state.db_factory()->Allocate<uint32_t>(1);
+            auto* db = rv_state.db_factory()->Allocate<uint32_t>(1);
             memory->Load(tohost_addr, db, nullptr, nullptr);
             auto word = db->Get<uint32_t>(0);
             db->DecRef();
@@ -358,14 +358,14 @@
   }
 
   // Set up arm semihosting if specified. Htif not supported for RiscV64.
-  RiscVArmSemihost *arm_semihost = nullptr;
+  RiscVArmSemihost* arm_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_arm)) {
     // Add ARM semihosting.
     arm_semihost = new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord64,
                                         memory, memory);
     arm_semihost->SetCmdLine(arg_vec);
     riscv_top.state()->AddEbreakHandler(
-        [arm_semihost](const Instruction *inst) {
+        [arm_semihost](const Instruction* inst) {
           if (arm_semihost->IsSemihostingCall(inst)) {
             arm_semihost->OnEBreak(inst);
             return true;
diff --git a/riscv/rv64g_test_sim.cc b/riscv/rv64g_test_sim.cc
index fdb67ad..c956c8d 100644
--- a/riscv/rv64g_test_sim.cc
+++ b/riscv/rv64g_test_sim.cc
@@ -65,7 +65,7 @@
 ABSL_FLAG(bool, log_commits, false, "Log commits similar to spike");
 ABSL_FLAG(int64_t, max_cycles, -1, "Max cycles to simulate");
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
   if (arg_vec.size() > 2) {
@@ -78,9 +78,9 @@
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
   mpact::sim::util::FlatDemandMemory memory;
-  auto *watcher = new mpact::sim::util::MemoryWatcher(&memory);
-  auto *test_watcher = new mpact::sim::riscv::RiscVTestMemWatcher(watcher);
-  auto *atomic_memory = new mpact::sim::util::AtomicMemory(test_watcher);
+  auto* watcher = new mpact::sim::util::MemoryWatcher(&memory);
+  auto* test_watcher = new mpact::sim::riscv::RiscVTestMemWatcher(watcher);
+  auto* atomic_memory = new mpact::sim::util::AtomicMemory(test_watcher);
   // Load the elf segments into memory.
   mpact::sim::util::ElfProgramLoader elf_loader(&memory);
   auto load_result = elf_loader.LoadProgram(full_file_name);
@@ -129,8 +129,8 @@
   bool ok = true;
   uint64_t pc = entry_point;
   bool commit_trace = absl::GetFlag(FLAGS_log_commits);
-  auto *register_map = riscv_top.state()->registers();
-  mpact::sim::generic::DataBuffer *inst_db =
+  auto* register_map = riscv_top.state()->registers();
+  mpact::sim::generic::DataBuffer* inst_db =
       riscv_top.state()->db_factory()->Allocate<uint32_t>(1);
   int64_t count = 0;
   int64_t max_count = absl::GetFlag(FLAGS_max_cycles);
@@ -148,7 +148,7 @@
     ok = true;
     if (commit_trace) {
       // This IncRef's the inst instance. Need to DecRef it when we are done.
-      auto *inst = riscv_top.GetInstruction(pc).value();
+      auto* inst = riscv_top.GetInstruction(pc).value();
       std::string trace_str;
       absl::StrAppend(
           &trace_str, "core   0: ", *(riscv_top.state()->privilege_mode()),
@@ -158,7 +158,7 @@
           &trace_str, " (0x",
           absl::Hex(inst_db->Get<uint32_t>(0), absl::PadSpec::kZeroPad8), ")");
       for (int i = 0; i < inst->DestinationsSize(); ++i) {
-        auto *dest = inst->Destination(i);
+        auto* dest = inst->Destination(i);
         if (dest == nullptr) continue;
         auto name = dest->AsString();
         if (name == "pc") continue;
@@ -167,7 +167,7 @@
         if (iter == register_map->end()) {
           continue;
         } else {
-          auto *db = iter->second->data_buffer();
+          auto* db = iter->second->data_buffer();
           auto size = db->size<uint8_t>();
           if (size != sizeof(uint64_t)) {
             continue;
@@ -177,10 +177,10 @@
               absl::Hex(db->Get<uint64_t>(0), absl::PadSpec::kZeroPad16));
         }
       }
-      auto *child = inst->child();
+      auto* child = inst->child();
       while (child != nullptr) {
         for (int i = 0; i < child->DestinationsSize(); ++i) {
-          auto *dest = child->Destination(i);
+          auto* dest = child->Destination(i);
           if (dest == nullptr) continue;
           auto name = dest->AsString();
           if (name == "pc") continue;
@@ -189,7 +189,7 @@
           if (iter == register_map->end()) {
             continue;
           } else {
-            auto *db = iter->second->data_buffer();
+            auto* db = iter->second->data_buffer();
             auto size = db->size<uint8_t>();
             if (size != sizeof(uint64_t)) {
               absl::StrAppend(&trace_str, " size issue:  ", name);
@@ -249,7 +249,7 @@
       uint64_t begin_sig = begin_res.value().first;
       uint64_t end_sig = end_res.value().first;
       uint64_t length = end_sig - begin_sig;
-      uint8_t *buffer = new uint8_t[length];
+      uint8_t* buffer = new uint8_t[length];
       auto status = riscv_top.ReadMemory(begin_sig, buffer, length);
       sig_file << std::setfill('0') << std::hex;
       for (int i = 0; i < length; i += 16) {
diff --git a/riscv/rv64gv_sim.cc b/riscv/rv64gv_sim.cc
index 4029017..5a2cc15 100644
--- a/riscv/rv64gv_sim.cc
+++ b/riscv/rv64gv_sim.cc
@@ -155,7 +155,7 @@
 constexpr char kStackSizeSymbolName[] = "__stack_size";
 
 // Static pointer to the top instance. Used by the control-C handler.
-static mpact::sim::riscv::RiscVTop *top = nullptr;
+static mpact::sim::riscv::RiscVTop* top = nullptr;
 
 // Control-c handler to interrupt any running simulation.
 static void sim_sigint_handler(int arg) {
@@ -173,8 +173,8 @@
 // debug command shell.
 static bool PrintRegisters(
     absl::string_view input,
-    const mpact::sim::riscv::DebugCommandShell::CoreAccess &core_access,
-    std::string &output) {
+    const mpact::sim::riscv::DebugCommandShell::CoreAccess& core_access,
+    std::string& output) {
   static const LazyRE2 reg_info_re{R"(\s*reg\s+info\s*)"};
   if (!RE2::FullMatch(input, *reg_info_re)) {
     return false;
@@ -195,7 +195,7 @@
   return true;
 }
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   int return_code = 0;
   auto arg_vec = absl::ParseCommandLine(argc, argv);
 
@@ -216,9 +216,9 @@
       full_file_name.substr(full_file_name.find_last_of('/') + 1);
   std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
 
-  auto *memory = new mpact::sim::util::FlatDemandMemory();
-  mpact::sim::util::MemoryWatcher *memory_watcher = nullptr;
-  mpact::sim::util::AtomicMemory *atomic_memory = nullptr;
+  auto* memory = new mpact::sim::util::FlatDemandMemory();
+  mpact::sim::util::MemoryWatcher* memory_watcher = nullptr;
+  mpact::sim::util::AtomicMemory* atomic_memory = nullptr;
   if (absl::GetFlag(FLAGS_exit_on_tohost)) {
     memory_watcher = new mpact::sim::util::MemoryWatcher(memory);
     atomic_memory = new mpact::sim::util::AtomicMemory(memory_watcher);
@@ -235,7 +235,7 @@
     return -1;
   }
 
-  mpact::sim::util::MemoryInterface *memory_interface = memory;
+  mpact::sim::util::MemoryInterface* memory_interface = memory;
   if (memory_watcher != nullptr) {
     memory_interface = memory_watcher;
   }
@@ -249,7 +249,7 @@
   RiscVVectorState rv_vector_state(&rv_state, 64);
   rv_state.set_rv_vector(&rv_vector_state);
   // Create the instruction decoder.
-  mpact::sim::generic::DecoderInterface *rv_decoder = nullptr;
+  mpact::sim::generic::DecoderInterface* rv_decoder = nullptr;
   if (absl::GetFlag(FLAGS_bitmanip)) {
     rv_decoder = new RiscV64GZBVecDecoder(&rv_state, memory);
   } else {
@@ -274,7 +274,7 @@
   RiscVTop riscv_top("RiscV32Sim", &rv_state, rv_decoder);
 
   if (absl::GetFlag(FLAGS_exit_on_ecall)) {
-    rv_state.set_on_ecall([&riscv_top](const Instruction *inst) -> bool {
+    rv_state.set_on_ecall([&riscv_top](const Instruction* inst) -> bool {
       riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, inst);
       return true;
     });
@@ -289,7 +289,7 @@
           [&riscv_top, tohost_addr, memory, &rv_state, &return_code, quiet](
               uint64_t, int) -> void {
             riscv_top.RequestHalt(RiscVTop::HaltReason::kProgramDone, nullptr);
-            auto *db = rv_state.db_factory()->Allocate<uint32_t>(1);
+            auto* db = rv_state.db_factory()->Allocate<uint32_t>(1);
             memory->Load(tohost_addr, db, nullptr, nullptr);
             auto word = db->Get<uint32_t>(0);
             db->DecRef();
@@ -370,14 +370,14 @@
   }
 
   // Set up arm semihosting if specified. Htif not supported for RiscV64.
-  RiscVArmSemihost *arm_semihost = nullptr;
+  RiscVArmSemihost* arm_semihost = nullptr;
   if (absl::GetFlag(FLAGS_semihost_arm)) {
     // Add ARM semihosting.
     arm_semihost = new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord64,
                                         memory, memory);
     arm_semihost->SetCmdLine(arg_vec);
     riscv_top.state()->AddEbreakHandler(
-        [arm_semihost](const Instruction *inst) {
+        [arm_semihost](const Instruction* inst) {
           if (arm_semihost->IsSemihostingCall(inst)) {
             arm_semihost->OnEBreak(inst);
             return true;
diff --git a/riscv/stoull_wrapper.cc b/riscv/stoull_wrapper.cc
index 2d3dfb6..adfba21 100644
--- a/riscv/stoull_wrapper.cc
+++ b/riscv/stoull_wrapper.cc
@@ -14,9 +14,14 @@
 
 #include "riscv/stoull_wrapper.h"
 
+#include <cstddef>
+#include <cstdint>
 #include <stdexcept>
 #include <string>
 
+#include "absl/status/status.h"
+#include "absl/status/statusor.h"
+
 // Google3 does not allow for exceptions, however, std:stoull can throw
 // exceptions when no number can be parsed. This wraps these exceptions,
 // translating them to absl::StatusOr<> and prevents exceptions from bleeding
@@ -27,13 +32,14 @@
 namespace riscv {
 namespace internal {
 
-absl::StatusOr<uint64_t> stoull(const std::string str, size_t *indx, int base) {
+absl::StatusOr<uint64_t> stoull(const std::string& str, size_t* indx,
+                                int base) {
   uint64_t value;
   try {
     value = std::stoull(str, indx, base);
-  } catch (const std::invalid_argument &e) {
+  } catch (const std::invalid_argument& e) {
     return absl::InvalidArgumentError("Conversion failed");
-  } catch (const std::out_of_range &e) {
+  } catch (const std::out_of_range& e) {
     return absl::OutOfRangeError("Conversion failed");
   } catch (...) {
     return absl::InternalError("Oops");
diff --git a/riscv/stoull_wrapper.h b/riscv/stoull_wrapper.h
index 1932c24..dd3cbf2 100644
--- a/riscv/stoull_wrapper.h
+++ b/riscv/stoull_wrapper.h
@@ -15,6 +15,8 @@
 #ifndef MPACT_RISCV_RISCV_STOULL_WRAPPER_H_
 #define MPACT_RISCV_RISCV_STOULL_WRAPPER_H_
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 
 #include "absl/status/statusor.h"
@@ -27,7 +29,7 @@
 namespace riscv {
 namespace internal {
 
-absl::StatusOr<uint64_t> stoull(const std::string str, size_t *indx = nullptr,
+absl::StatusOr<uint64_t> stoull(const std::string& str, size_t* indx = nullptr,
                                 int base = 10);
 
 }  // namespace internal
diff --git a/riscv/test/BUILD b/riscv/test/BUILD
index 1ffbd97..a41ea0c 100644
--- a/riscv/test/BUILD
+++ b/riscv/test/BUILD
@@ -157,6 +157,7 @@
         "//riscv:riscv_g",
         "//riscv:riscv_state",
         "@com_google_absl//absl/log:check",
+        "@com_google_absl//absl/strings",
         "@com_google_googletest//:gtest_main",
         "@com_google_mpact-sim//mpact/sim/generic:core",
         "@com_google_mpact-sim//mpact/sim/generic:instruction",
@@ -438,6 +439,7 @@
         "//riscv:riscv_arm_semihost",
         "//riscv:riscv_state",
         "@com_google_absl//absl/log:check",
+        "@com_google_absl//absl/strings",
         "@com_google_googletest//:gtest_main",
         "@com_google_mpact-sim//mpact/sim/generic:core",
         "@com_google_mpact-sim//mpact/sim/generic:instruction",
@@ -591,6 +593,7 @@
         "//riscv:riscv_v",
         "@com_google_absl//absl/random",
         "@com_google_absl//absl/strings",
+        "@com_google_absl//absl/types:span",
         "@com_google_googletest//:gtest_main",
         "@com_google_mpact-sim//mpact/sim/generic:instruction",
         "@com_google_mpact-sim//mpact/sim/generic:type_helpers",
diff --git a/riscv/test/librenode_mpact_riscv32_so_test.cc b/riscv/test/librenode_mpact_riscv32_so_test.cc
index 38694c4..b46a452 100644
--- a/riscv/test/librenode_mpact_riscv32_so_test.cc
+++ b/riscv/test/librenode_mpact_riscv32_so_test.cc
@@ -29,7 +29,7 @@
 
   ~LibRenodeMpactRiscV32SoTest() { dlclose(lib_); }
 
-  void *lib_ = nullptr;
+  void* lib_ = nullptr;
 };
 
 TEST_F(LibRenodeMpactRiscV32SoTest, Construct) {
@@ -96,13 +96,13 @@
   EXPECT_NE(dlsym(lib_, "set_irq_value"), nullptr);
 }
 
-using ConstructType = int32_t (*)(char *, int32_t);
-using StepType = uint64_t (*)(int32_t, uint64_t, int32_t *);
-using SetConfigType = int32_t (*)(int32_t, const char *[], const char *[],
+using ConstructType = int32_t (*)(char*, int32_t);
+using StepType = uint64_t (*)(int32_t, uint64_t, int32_t*);
+using SetConfigType = int32_t (*)(int32_t, const char*[], const char*[],
                                   int32_t);
-using LoadElfType = uint64_t (*)(int32_t, const char *, bool, int32_t *);
+using LoadElfType = uint64_t (*)(int32_t, const char*, bool, int32_t*);
 using GetRegInfoSize = int32_t (*)(int32_t);
-using GetRegInfo = int32_t (*)(int32_t, int32_t, char *name, void *info);
+using GetRegInfo = int32_t (*)(int32_t, int32_t, char* name, void* info);
 using WriteRegisterType = void (*)(int32_t, int32_t, uint64_t);
 using DestructType = void (*)(int32_t);
 
@@ -144,15 +144,15 @@
   int num_regs = get_reg_info_size(id);
   CHECK_GT(num_regs, 0);
   // Set configuration items.
-  const char *kInstProfile = "instProfile";
-  const char *kMemProfile = "memProfile";
-  const char *kStackEnd = "stackEnd";
-  const char *kMemoryBase = "memoryBase";
-  const char *kMemorySize = "memorySize";
+  const char* kInstProfile = "instProfile";
+  const char* kMemProfile = "memProfile";
+  const char* kStackEnd = "stackEnd";
+  const char* kMemoryBase = "memoryBase";
+  const char* kMemorySize = "memorySize";
 
-  const char *kConfigItems[] = {kInstProfile, kMemProfile, kStackEnd,
+  const char* kConfigItems[] = {kInstProfile, kMemProfile, kStackEnd,
                                 kMemoryBase, kMemorySize};
-  const char *kConfigValues[] = {"1", "1", "0x00030000", "0x00000000",
+  const char* kConfigValues[] = {"1", "1", "0x00030000", "0x00000000",
                                  "0x10000000"};
   status = set_config(id, kConfigItems, kConfigValues, 5);
   CHECK_EQ(status, 0);
diff --git a/riscv/test/librenode_mpact_riscv64_so_test.cc b/riscv/test/librenode_mpact_riscv64_so_test.cc
index 9055f70..3fd2355 100644
--- a/riscv/test/librenode_mpact_riscv64_so_test.cc
+++ b/riscv/test/librenode_mpact_riscv64_so_test.cc
@@ -29,7 +29,7 @@
 
   ~LibRenodeMpactRiscV64SoTest() { dlclose(lib_); }
 
-  void *lib_ = nullptr;
+  void* lib_ = nullptr;
 };
 
 TEST_F(LibRenodeMpactRiscV64SoTest, Construct) {
@@ -96,14 +96,14 @@
   EXPECT_NE(dlsym(lib_, "set_irq_value"), nullptr);
 }
 
-using ConstructType = int32_t (*)(char *, int32_t);
+using ConstructType = int32_t (*)(char*, int32_t);
 using DestructType = void (*)(int32_t);
-using StepType = uint64_t (*)(int32_t, uint64_t, int32_t *);
-using SetConfigType = int32_t (*)(int32_t, const char *[], const char *[],
+using StepType = uint64_t (*)(int32_t, uint64_t, int32_t*);
+using SetConfigType = int32_t (*)(int32_t, const char*[], const char*[],
                                   int32_t);
-using LoadElfType = uint64_t (*)(int32_t, const char *, bool, int32_t *);
+using LoadElfType = uint64_t (*)(int32_t, const char*, bool, int32_t*);
 using GetRegInfoSize = int32_t (*)(int32_t);
-using GetRegInfo = int32_t (*)(int32_t, int32_t, char *name, void *info);
+using GetRegInfo = int32_t (*)(int32_t, int32_t, char* name, void* info);
 using WriteRegisterType = void (*)(int32_t, int32_t, uint64_t);
 
 TEST_F(LibRenodeMpactRiscV64SoTest, RunProgram) {
@@ -144,15 +144,15 @@
   int num_regs = get_reg_info_size(id);
   CHECK_GT(num_regs, 0);
   // Set configuration items.
-  const char *kInstProfile = "instProfile";
-  const char *kMemProfile = "memProfile";
-  const char *kStackEnd = "stackEnd";
-  const char *kMemoryBase = "memoryBase";
-  const char *kMemorySize = "memorySize";
+  const char* kInstProfile = "instProfile";
+  const char* kMemProfile = "memProfile";
+  const char* kStackEnd = "stackEnd";
+  const char* kMemoryBase = "memoryBase";
+  const char* kMemorySize = "memorySize";
 
-  const char *kConfigItems[] = {kInstProfile, kMemProfile, kStackEnd,
+  const char* kConfigItems[] = {kInstProfile, kMemProfile, kStackEnd,
                                 kMemoryBase, kMemorySize};
-  const char *kConfigValues[] = {"1", "1", "0x00030000", "0x00000000",
+  const char* kConfigValues[] = {"1", "1", "0x00030000", "0x00000000",
                                  "0x10000000"};
   status = set_config(id, kConfigItems, kConfigValues, 5);
   CHECK_EQ(status, 0);
diff --git a/riscv/test/riscv32_bitmanip_instructions_test.cc b/riscv/test/riscv32_bitmanip_instructions_test.cc
index 25ccf14..998094e 100644
--- a/riscv/test/riscv32_bitmanip_instructions_test.cc
+++ b/riscv/test/riscv32_bitmanip_instructions_test.cc
@@ -93,29 +93,29 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       instruction_->AppendSource(src);
     }
   }
@@ -124,9 +124,9 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -141,12 +141,12 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
-  RiscVState *state_;
-  Instruction *instruction_;
+  RiscVState* state_;
+  Instruction* instruction_;
   absl::BitGen bitgen_;
 };
 
diff --git a/riscv/test/riscv32_decoder_test.cc b/riscv/test/riscv32_decoder_test.cc
index 5a87736..a0d2d91 100644
--- a/riscv/test/riscv32_decoder_test.cc
+++ b/riscv/test/riscv32_decoder_test.cc
@@ -52,7 +52,7 @@
     auto result = loader_.LoadProgram(input_file);
     CHECK_OK(result.status());
     elf_reader_.load(input_file);
-    auto *symtab = elf_reader_.sections[".symtab"];
+    auto* symtab = elf_reader_.sections[".symtab"];
     CHECK_NE(symtab, nullptr);
     symbol_accessor_ = new SymbolAccessor(elf_reader_, symtab);
   }
@@ -64,7 +64,7 @@
   mpact::sim::riscv::RiscVState state_;
   mpact::sim::util::ElfProgramLoader loader_;
   mpact::sim::riscv::RiscV32Decoder decoder_;
-  SymbolAccessor *symbol_accessor_;
+  SymbolAccessor* symbol_accessor_;
 };
 
 // This test is really pretty simple. It decodes the instructions in "main".
@@ -84,15 +84,15 @@
   uint64_t address = value;
   while (address < value + size) {
     EXPECT_FALSE(state_.program_error_controller()->HasError());
-    auto *inst = decoder_.DecodeInstruction(address);
+    auto* inst = decoder_.DecodeInstruction(address);
     ASSERT_NE(inst, nullptr);
     inst->Execute(nullptr);
     if (state_.program_error_controller()->HasError()) {
       auto errvec = state_.program_error_controller()->GetUnmaskedErrorNames();
-      for (auto &err : errvec) {
+      for (auto& err : errvec) {
         LOG(INFO) << "Error: " << err;
         auto msgvec = state_.program_error_controller()->GetErrorMessages(err);
-        for (auto &msg : msgvec) {
+        for (auto& msg : msgvec) {
           LOG(INFO) << "    " << msg;
         }
       }
@@ -107,7 +107,7 @@
 
 // Even with a bad address, a valid instruction object should be returned.
 TEST_F(RiscV32DecoderTest, BadAddress) {
-  auto *inst = decoder_.DecodeInstruction(0x4321);
+  auto* inst = decoder_.DecodeInstruction(0x4321);
   ASSERT_NE(inst, nullptr);
   inst->Execute(nullptr);
   inst->DecRef();
diff --git a/riscv/test/riscv32_htif_semihost_test.cc b/riscv/test/riscv32_htif_semihost_test.cc
index 0cdd474..6d98dda 100644
--- a/riscv/test/riscv32_htif_semihost_test.cc
+++ b/riscv/test/riscv32_htif_semihost_test.cc
@@ -44,8 +44,8 @@
   }
 
   DataBufferFactory db_factory_;
-  mpact::sim::util::MemoryWatcher *watcher_;
-  mpact::sim::util::FlatDemandMemory *memory_;
+  mpact::sim::util::MemoryWatcher* watcher_;
+  mpact::sim::util::FlatDemandMemory* memory_;
   SemiHostAddresses semi_host_addresses_ = {0x1000, 0x1008, 0x2000, 0x2008};
 };
 
@@ -53,10 +53,10 @@
 TEST_F(RiscV32HtifSemiHostTest, Constructors) {
   bool halted = false;
   std::string error;
-  auto *one = new RiscV32HtifSemiHost(watcher_, memory_, semi_host_addresses_);
+  auto* one = new RiscV32HtifSemiHost(watcher_, memory_, semi_host_addresses_);
   one->SetHaltCallback([&halted]() { halted = true; });
   one->SetErrorCallback([&error](std::string err) { error = err; });
-  auto *two = new RiscV32HtifSemiHost(
+  auto* two = new RiscV32HtifSemiHost(
       watcher_, memory_, semi_host_addresses_, [&halted]() { halted = true; },
       [&error](std::string err) { error = err; });
   delete one;
@@ -68,15 +68,15 @@
   bool halted = false;
   bool error_call = false;
   std::string error;
-  auto *semi_host =
+  auto* semi_host =
       new RiscV32HtifSemiHost(watcher_, memory_, semi_host_addresses_);
   semi_host->SetHaltCallback([&halted]() { halted = true; });
   semi_host->SetErrorCallback([&error, &error_call](std::string msg) {
     error_call = true;
     error = msg;
   });
-  auto *db1 = db_factory_.Allocate<uint8_t>(1);
-  auto *db8 = db_factory_.Allocate<uint64_t>(1);
+  auto* db1 = db_factory_.Allocate<uint8_t>(1);
+  auto* db8 = db_factory_.Allocate<uint64_t>(1);
   db1->Set<uint8_t>(0, 1);
   db8->Set<uint64_t>(0, 1);
   watcher_->Store(semi_host_addresses_.tohost, db8);
@@ -96,20 +96,20 @@
   bool halted = false;
   bool error_call = false;
   std::string error;
-  auto *semi_host =
+  auto* semi_host =
       new RiscV32HtifSemiHost(watcher_, memory_, semi_host_addresses_);
   semi_host->SetHaltCallback([&halted]() { halted = true; });
   semi_host->SetErrorCallback([&error, &error_call](std::string msg) {
     error_call = true;
     error = msg;
   });
-  auto *db1 = db_factory_.Allocate<uint8_t>(1);
-  auto *db8 = db_factory_.Allocate<uint64_t>(1);
-  auto *db64 = db_factory_.Allocate<uint64_t>(8);
+  auto* db1 = db_factory_.Allocate<uint8_t>(1);
+  auto* db8 = db_factory_.Allocate<uint64_t>(1);
+  auto* db64 = db_factory_.Allocate<uint64_t>(8);
 
   db1->Set<uint8_t>(0, 1);
   db8->Set<uint64_t>(0, 0x4000);
-  for (auto &el : db64->Get<uint64_t>()) el = 0;
+  for (auto& el : db64->Get<uint64_t>()) el = 0;
   db64->Set<uint64_t>(0, 123);
   watcher_->Store(0x4000, db64);
   watcher_->Store(semi_host_addresses_.tohost, db8);
@@ -132,22 +132,22 @@
   bool halted = false;
   bool error_call = false;
   std::string error;
-  auto *semi_host =
+  auto* semi_host =
       new RiscV32HtifSemiHost(watcher_, memory_, semi_host_addresses_);
   semi_host->SetHaltCallback([&halted]() { halted = true; });
   semi_host->SetErrorCallback([&error, &error_call](std::string msg) {
     error_call = true;
     error = msg;
   });
-  auto *db1 = db_factory_.Allocate<uint8_t>(1);
-  auto *db8 = db_factory_.Allocate<uint64_t>(1);
-  auto *db16 = db_factory_.Allocate<uint8_t>(16);
-  auto *db64 = db_factory_.Allocate<uint64_t>(8);
+  auto* db1 = db_factory_.Allocate<uint8_t>(1);
+  auto* db8 = db_factory_.Allocate<uint64_t>(1);
+  auto* db16 = db_factory_.Allocate<uint8_t>(16);
+  auto* db64 = db_factory_.Allocate<uint64_t>(8);
 
   db1->Set<uint8_t>(0, 1);
   db8->Set<uint64_t>(0, 0x4000);
   std::memcpy(db16->raw_ptr(), kHelloWorld, strlen(kHelloWorld));
-  for (auto &el : db64->Get<uint64_t>()) el = 0;
+  for (auto& el : db64->Get<uint64_t>()) el = 0;
   db64->Set<uint64_t>(0, 64);
   db64->Set<uint64_t>(1, 2);
   db64->Set<uint64_t>(2, 0x4100);
diff --git a/riscv/test/riscv32g_encoding_test.cc b/riscv/test/riscv32g_encoding_test.cc
index e77f4be..bb680d4 100644
--- a/riscv/test/riscv32g_encoding_test.cc
+++ b/riscv/test/riscv32g_encoding_test.cc
@@ -225,8 +225,8 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV32GEncoding *enc_;
+  RiscVState* state_;
+  RiscV32GEncoding* enc_;
 };
 
 constexpr int kRdValue = 1;
@@ -258,7 +258,7 @@
 }
 
 TEST_F(RiscV32GEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -266,7 +266,7 @@
 }
 
 TEST_F(RiscV32GEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -274,7 +274,7 @@
 }
 
 TEST_F(RiscV32GEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -283,7 +283,7 @@
 }
 
 TEST_F(RiscV32GEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv32g_vec_encoding_test.cc b/riscv/test/riscv32g_vec_encoding_test.cc
index f3af998..753678a 100644
--- a/riscv/test/riscv32g_vec_encoding_test.cc
+++ b/riscv/test/riscv32g_vec_encoding_test.cc
@@ -54,12 +54,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV32GVecEncoding *enc_;
+  RiscVState* state_;
+  RiscV32GVecEncoding* enc_;
 };
 
 TEST_F(RiscV32GVecEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -67,7 +67,7 @@
 }
 
 TEST_F(RiscV32GVecEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -75,7 +75,7 @@
 }
 
 TEST_F(RiscV32GVecEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -84,7 +84,7 @@
 }
 
 TEST_F(RiscV32GVecEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv32gzb_encoding_test.cc b/riscv/test/riscv32gzb_encoding_test.cc
index 8131160..d0e4b79 100644
--- a/riscv/test/riscv32gzb_encoding_test.cc
+++ b/riscv/test/riscv32gzb_encoding_test.cc
@@ -98,12 +98,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV32GZBEncoding *enc_;
+  RiscVState* state_;
+  RiscV32GZBEncoding* enc_;
 };
 
 TEST_F(RiscV32GZBEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -111,7 +111,7 @@
 }
 
 TEST_F(RiscV32GZBEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -119,7 +119,7 @@
 }
 
 TEST_F(RiscV32GZBEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -128,7 +128,7 @@
 }
 
 TEST_F(RiscV32GZBEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv32gzb_vec_encoding_test.cc b/riscv/test/riscv32gzb_vec_encoding_test.cc
index f14f8df..f34a2c8 100644
--- a/riscv/test/riscv32gzb_vec_encoding_test.cc
+++ b/riscv/test/riscv32gzb_vec_encoding_test.cc
@@ -54,12 +54,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV32GZBVecEncoding *enc_;
+  RiscVState* state_;
+  RiscV32GZBVecEncoding* enc_;
 };
 
 TEST_F(RiscV32GZBVecEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -67,7 +67,7 @@
 }
 
 TEST_F(RiscV32GZBVecEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -75,7 +75,7 @@
 }
 
 TEST_F(RiscV32GZBVecEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -84,7 +84,7 @@
 }
 
 TEST_F(RiscV32GZBVecEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv64_bitmanip_instructions_test.cc b/riscv/test/riscv64_bitmanip_instructions_test.cc
index ecb82e9..661bc83 100644
--- a/riscv/test/riscv64_bitmanip_instructions_test.cc
+++ b/riscv/test/riscv64_bitmanip_instructions_test.cc
@@ -92,29 +92,29 @@
   // Appends the source and destination operands for the register names
   // given in the two vectors.
   void AppendRegisterOperands(
-      Instruction *inst, const std::vector<std::string_view> &sources,
-      const std::vector<std::string_view> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+      Instruction* inst, const std::vector<std::string_view>& sources,
+      const std::vector<std::string_view>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
   void AppendRegisterOperands(
-      const std::vector<std::string_view> &sources,
-      const std::vector<std::string_view> &destinations) {
+      const std::vector<std::string_view>& sources,
+      const std::vector<std::string_view>& destinations) {
     AppendRegisterOperands(instruction_.get(), sources, destinations);
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       instruction_->AppendSource(src);
     }
   }
@@ -124,9 +124,9 @@
   template <typename T>
   void SetRegisterValues(
       const std::vector<std::tuple<std::string_view, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV64Register::ValueType>(1);
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV64Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -141,7 +141,7 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
@@ -163,7 +163,7 @@
   EXPECT_EQ(GetRegisterValue<int64_t>(kX3), (kUVal1 & 0xffff'ffffLL) + kUVal2);
 }
 
-void VshNaddTestHelper(RV64BitmanipInstructionTest &test, int shift) {
+void VshNaddTestHelper(RV64BitmanipInstructionTest& test, int shift) {
   test.AppendRegisterOperands({kX1, kX2, kX4}, {kX3});
 
   test.SetRegisterValues<uint64_t>(
@@ -187,7 +187,7 @@
   VshNaddTestHelper(*this, 3);
 }
 
-void VshNadduwTestHelper(RV64BitmanipInstructionTest &test, int shift) {
+void VshNadduwTestHelper(RV64BitmanipInstructionTest& test, int shift) {
   test.AppendRegisterOperands({kX1, kX2, kX4}, {kX3});
 
   test.SetRegisterValues<uint64_t>(
diff --git a/riscv/test/riscv64_decoder_test.cc b/riscv/test/riscv64_decoder_test.cc
index 0354f11..e4461a5 100644
--- a/riscv/test/riscv64_decoder_test.cc
+++ b/riscv/test/riscv64_decoder_test.cc
@@ -57,7 +57,7 @@
     auto result = loader_.LoadProgram(input_file);
     CHECK_OK(result.status());
     elf_reader_.load(input_file);
-    auto *symtab = elf_reader_.sections[".symtab"];
+    auto* symtab = elf_reader_.sections[".symtab"];
     CHECK_NE(symtab, nullptr);
     symbol_accessor_ = new SymbolAccessor(elf_reader_, symtab);
   }
@@ -69,11 +69,11 @@
   mpact::sim::util::FlatDemandMemory memory_;
   mpact::sim::util::ElfProgramLoader loader_;
   RiscV64Decoder decoder_;
-  SymbolAccessor *symbol_accessor_;
+  SymbolAccessor* symbol_accessor_;
 };
 
 TEST_F(RiscV64DecoderTest, Getters) {
-  RiscV64Decoder *decoder = nullptr;
+  RiscV64Decoder* decoder = nullptr;
   LogSink log_sink;
   absl::AddLogSink(&log_sink);
   decoder = new RiscV64Decoder(&state_, &memory_);
@@ -99,15 +99,15 @@
   uint64_t address = value;
   while (address < value + size) {
     EXPECT_FALSE(state_.program_error_controller()->HasError());
-    auto *inst = decoder_.DecodeInstruction(address);
+    auto* inst = decoder_.DecodeInstruction(address);
     ASSERT_NE(inst, nullptr);
     inst->Execute(nullptr);
     if (state_.program_error_controller()->HasError()) {
       auto errvec = state_.program_error_controller()->GetUnmaskedErrorNames();
-      for (auto &err : errvec) {
+      for (auto& err : errvec) {
         LOG(INFO) << "Error: " << err;
         auto msgvec = state_.program_error_controller()->GetErrorMessages(err);
-        for (auto &msg : msgvec) {
+        for (auto& msg : msgvec) {
           LOG(INFO) << "    " << msg;
         }
       }
@@ -122,7 +122,7 @@
 
 // Even with a bad address, a valid instruction object should be returned.
 TEST_F(RiscV64DecoderTest, BadAddress) {
-  auto *inst = decoder_.DecodeInstruction(0x4321);
+  auto* inst = decoder_.DecodeInstruction(0x4321);
   ASSERT_NE(inst, nullptr);
   inst->Execute(nullptr);
   inst->DecRef();
diff --git a/riscv/test/riscv64g_encoding_test.cc b/riscv/test/riscv64g_encoding_test.cc
index 5380649..c277327 100644
--- a/riscv/test/riscv64g_encoding_test.cc
+++ b/riscv/test/riscv64g_encoding_test.cc
@@ -239,8 +239,8 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV64GEncoding *enc_;
+  RiscVState* state_;
+  RiscV64GEncoding* enc_;
 };
 
 constexpr int kRdValue = 1;
@@ -272,7 +272,7 @@
 }
 
 TEST_F(RiscV64GEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -280,7 +280,7 @@
 }
 
 TEST_F(RiscV64GEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -288,7 +288,7 @@
 }
 
 TEST_F(RiscV64GEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -297,7 +297,7 @@
 }
 
 TEST_F(RiscV64GEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv64g_vec_encoding_test.cc b/riscv/test/riscv64g_vec_encoding_test.cc
index 1af43a0..273f139 100644
--- a/riscv/test/riscv64g_vec_encoding_test.cc
+++ b/riscv/test/riscv64g_vec_encoding_test.cc
@@ -54,12 +54,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV64GVecEncoding *enc_;
+  RiscVState* state_;
+  RiscV64GVecEncoding* enc_;
 };
 
 TEST_F(RiscV64GVecEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -67,7 +67,7 @@
 }
 
 TEST_F(RiscV64GVecEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -75,7 +75,7 @@
 }
 
 TEST_F(RiscV64GVecEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -84,7 +84,7 @@
 }
 
 TEST_F(RiscV64GVecEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv64gzb_encoding_test.cc b/riscv/test/riscv64gzb_encoding_test.cc
index fd29d6e..a1474ce 100644
--- a/riscv/test/riscv64gzb_encoding_test.cc
+++ b/riscv/test/riscv64gzb_encoding_test.cc
@@ -54,12 +54,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV64GZBEncoding *enc_;
+  RiscVState* state_;
+  RiscV64GZBEncoding* enc_;
 };
 
 TEST_F(RiscV64GZBEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -67,7 +67,7 @@
 }
 
 TEST_F(RiscV64GZBEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -75,7 +75,7 @@
 }
 
 TEST_F(RiscV64GZBEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -84,7 +84,7 @@
 }
 
 TEST_F(RiscV64GZBEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv64gzb_vec_encoding_test.cc b/riscv/test/riscv64gzb_vec_encoding_test.cc
index fa801c1..6d0e00d 100644
--- a/riscv/test/riscv64gzb_vec_encoding_test.cc
+++ b/riscv/test/riscv64gzb_vec_encoding_test.cc
@@ -54,12 +54,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscV64GZBVecEncoding *enc_;
+  RiscVState* state_;
+  RiscV64GZBVecEncoding* enc_;
 };
 
 TEST_F(RiscV64GZBVecEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -67,7 +67,7 @@
 }
 
 TEST_F(RiscV64GZBVecEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -75,7 +75,7 @@
 }
 
 TEST_F(RiscV64GZBVecEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -84,7 +84,7 @@
 }
 
 TEST_F(RiscV64GZBVecEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/test/riscv_a_instructions_test.cc b/riscv/test/riscv_a_instructions_test.cc
index 99cae8e..b7397f6 100644
--- a/riscv/test/riscv_a_instructions_test.cc
+++ b/riscv/test/riscv_a_instructions_test.cc
@@ -14,12 +14,16 @@
 
 #include "riscv/riscv_a_instructions.h"
 
+#include <algorithm>
 #include <cstdint>
 #include <ios>
 #include <string>
+#include <tuple>
+#include <type_traits>
 #include <vector>
 
 #include "absl/log/check.h"
+#include "absl/strings/string_view.h"
 #include "googlemock/include/gmock/gmock.h"
 #include "mpact/sim/generic/data_buffer.h"
 #include "mpact/sim/generic/instruction.h"
@@ -120,21 +124,21 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
@@ -142,9 +146,9 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV64Register::ValueType>(1);
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV64Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -163,7 +167,7 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
     if (std::is_signed<T>::value) {
       return static_cast<T>(reg->data_buffer()->Get<int64_t>(0));
     } else {
@@ -171,13 +175,13 @@
     }
   }
 
-  DataBuffer *db_w_;
-  DataBuffer *db_d_;
-  FlatDemandMemory *memory_;
-  AtomicMemory *atomic_memory_;
-  RiscVState *state_;
-  Instruction *instruction_;
-  Instruction *child_instruction_;
+  DataBuffer* db_w_;
+  DataBuffer* db_d_;
+  FlatDemandMemory* memory_;
+  AtomicMemory* atomic_memory_;
+  RiscVState* state_;
+  Instruction* instruction_;
+  Instruction* child_instruction_;
 };
 
 TEST_F(RiscVAInstructionsTest, ALrw) {
diff --git a/riscv/test/riscv_arm_semihost_test.cc b/riscv/test/riscv_arm_semihost_test.cc
index 999c325..0c5352b 100644
--- a/riscv/test/riscv_arm_semihost_test.cc
+++ b/riscv/test/riscv_arm_semihost_test.cc
@@ -17,10 +17,14 @@
 #include <time.h>
 #include <unistd.h>
 
+#include <cstdint>
+#include <cstdio>
 #include <cstring>
 #include <string>
+#include <type_traits>
 
 #include "absl/log/check.h"
+#include "absl/strings/str_cat.h"
 #include "googlemock/include/gmock/gmock.h"
 #include "mpact/sim/generic/data_buffer.h"
 #include "mpact/sim/generic/instruction.h"
@@ -61,7 +65,7 @@
 
 constexpr int kBufferSize = 128;
 
-// Opcode sequence that idenfifies the semihosting call. This consists
+// Opcode sequence that identifies the semihosting call. This consists
 // of a shift immediate on the x0 (constant 0 register), followed by
 // an ebreak instruction, followed by a different shift immediate on x0.
 constexpr uint32_t kSemihostCallSequence[] = {0x01f01013, 0x00100073,
@@ -103,19 +107,19 @@
 // Test fixture for RiscV Arm Semihosting.
 class RiscVArmSemihostTest : public testing::Test {
  public:
-  void SetTrue(bool *value) { *value = true; }
-  RiscVArmSemihost *semi32() const { return semi32_; }
-  RiscVArmSemihost *semi64() const { return semi64_; }
-  RV32Register *a0_32() const { return a0_32_; }
-  RV32Register *a1_32() const { return a1_32_; }
-  RV64Register *a0_64() const { return a0_64_; }
-  RV64Register *a1_64() const { return a1_64_; }
-  Instruction *semihost_inst_32() const { return semihost_inst_32_; }
-  Instruction *semihost_inst_64() const { return semihost_inst_64_; }
-  Instruction *non_semihost_inst_32() const { return non_semihost_inst_32_; }
-  Instruction *non_semihost_inst_64() const { return non_semihost_inst_64_; }
-  DataBufferFactory *db_factory() { return &db_factory_; }
-  mpact::sim::util::MemoryInterface *memory() const { return memory_; }
+  void SetTrue(bool* value) { *value = true; }
+  RiscVArmSemihost* semi32() const { return semi32_; }
+  RiscVArmSemihost* semi64() const { return semi64_; }
+  RV32Register* a0_32() const { return a0_32_; }
+  RV32Register* a1_32() const { return a1_32_; }
+  RV64Register* a0_64() const { return a0_64_; }
+  RV64Register* a1_64() const { return a1_64_; }
+  Instruction* semihost_inst_32() const { return semihost_inst_32_; }
+  Instruction* semihost_inst_64() const { return semihost_inst_64_; }
+  Instruction* non_semihost_inst_32() const { return non_semihost_inst_32_; }
+  Instruction* non_semihost_inst_64() const { return non_semihost_inst_64_; }
+  DataBufferFactory* db_factory() { return &db_factory_; }
+  mpact::sim::util::MemoryInterface* memory() const { return memory_; }
 
  protected:
   RiscVArmSemihostTest() {
@@ -171,15 +175,15 @@
   }
 
   DataBufferFactory db_factory_;
-  mpact::sim::util::FlatDemandMemory *memory_;
-  RiscVState *state32_;
-  RiscVState *state64_;
-  Instruction *semihost_inst_32_;
-  Instruction *semihost_inst_64_;
-  Instruction *non_semihost_inst_32_;
-  Instruction *non_semihost_inst_64_;
-  RiscVArmSemihost *semi32_;
-  RiscVArmSemihost *semi64_;
+  mpact::sim::util::FlatDemandMemory* memory_;
+  RiscVState* state32_;
+  RiscVState* state64_;
+  Instruction* semihost_inst_32_;
+  Instruction* semihost_inst_64_;
+  Instruction* non_semihost_inst_32_;
+  Instruction* non_semihost_inst_64_;
+  RiscVArmSemihost* semi32_;
+  RiscVArmSemihost* semi64_;
   RV32Register *a0_32_, *a1_32_;
   RV64Register *a0_64_, *a1_64_;
 };
@@ -188,24 +192,24 @@
 
 // Semihosting instance.
 template <typename T>
-RiscVArmSemihost *SemiHost(RiscVArmSemihostTest *test) {}
+RiscVArmSemihost* SemiHost(RiscVArmSemihostTest* test) {}
 
 template <>
-RiscVArmSemihost *SemiHost<uint32_t>(RiscVArmSemihostTest *test) {
+RiscVArmSemihost* SemiHost<uint32_t>(RiscVArmSemihostTest* test) {
   return test->semi32();
 }
 
 template <>
-RiscVArmSemihost *SemiHost<uint64_t>(RiscVArmSemihostTest *test) {
+RiscVArmSemihost* SemiHost<uint64_t>(RiscVArmSemihostTest* test) {
   return test->semi64();
 }
 
 // Register.
 template <typename T>
-typename RegisterType<T>::type *AReg(RiscVArmSemihostTest *test, T num) {}
+typename RegisterType<T>::type* AReg(RiscVArmSemihostTest* test, T num) {}
 
 template <>
-typename RegisterType<uint32_t>::type *AReg(RiscVArmSemihostTest *test,
+typename RegisterType<uint32_t>::type* AReg(RiscVArmSemihostTest* test,
                                             uint32_t num) {
   if (num == 0) return test->a0_32();
   if (num == 1) return test->a1_32();
@@ -213,7 +217,7 @@
 }
 
 template <>
-typename RegisterType<uint64_t>::type *AReg(RiscVArmSemihostTest *test,
+typename RegisterType<uint64_t>::type* AReg(RiscVArmSemihostTest* test,
                                             uint64_t num) {
   if (num == 0) return test->a0_64();
   if (num == 1) return test->a1_64();
@@ -222,28 +226,28 @@
 
 // Semihosting instruction instance.
 template <typename T>
-Instruction *SemihostInst(RiscVArmSemihostTest *test, T num = 0) {}
+Instruction* SemihostInst(RiscVArmSemihostTest* test, T num = 0) {}
 
 template <>
-Instruction *SemihostInst<uint32_t>(RiscVArmSemihostTest *test, uint32_t) {
+Instruction* SemihostInst<uint32_t>(RiscVArmSemihostTest* test, uint32_t) {
   return test->semihost_inst_32();
 }
 
 template <>
-Instruction *SemihostInst<uint64_t>(RiscVArmSemihostTest *test, uint64_t) {
+Instruction* SemihostInst<uint64_t>(RiscVArmSemihostTest* test, uint64_t) {
   return test->semihost_inst_64();
 }
 
 // Non-semihosting instruction instance.
 template <typename T>
-Instruction *NonSemihostInst(RiscVArmSemihostTest *test, T num = 0) {}
+Instruction* NonSemihostInst(RiscVArmSemihostTest* test, T num = 0) {}
 
 template <>
-Instruction *NonSemihostInst<uint32_t>(RiscVArmSemihostTest *test, uint32_t) {
+Instruction* NonSemihostInst<uint32_t>(RiscVArmSemihostTest* test, uint32_t) {
   return test->non_semihost_inst_32();
 }
 template <>
-Instruction *NonSemihostInst<uint64_t>(RiscVArmSemihostTest *test, uint64_t) {
+Instruction* NonSemihostInst<uint64_t>(RiscVArmSemihostTest* test, uint64_t) {
   return test->non_semihost_inst_64();
 }
 
@@ -251,7 +255,7 @@
 // call.
 
 template <typename T>
-void CallRecognitionTest(RiscVArmSemihostTest *test) {
+void CallRecognitionTest(RiscVArmSemihostTest* test) {
   AReg<T>(test, 0)->data_buffer()->template Set<T>(0, kSysTime);
   AReg<T>(test, 1)->data_buffer()->template Set<T>(0, 0);
   SemiHost<T>(test)->OnEBreak(SemihostInst<T>(test));
@@ -271,7 +275,7 @@
 // Verify that a sequence that doesn't match doesn't trigger semihosting call.
 
 template <typename T>
-void CallNonRecognitionTest(RiscVArmSemihostTest *test) {
+void CallNonRecognitionTest(RiscVArmSemihostTest* test) {
   AReg<T>(test, 0)->data_buffer()->template Set<T>(0, kSysTime);
   AReg<T>(test, 1)->data_buffer()->template Set<T>(0, 0);
   SemiHost<T>(test)->OnEBreak(NonSemihostInst<T>(test));
@@ -313,7 +317,7 @@
       [&detected]() { detected = true; });
 
   // Write exception code to memory.
-  auto *db = db_factory()->Allocate<uint64_t>(1);
+  auto* db = db_factory()->Allocate<uint64_t>(1);
   db->template Set<uint64_t>(0, kAdpStoppedApplicationExit);
   memory_->Store(kParameterAddress, db);
   db->DecRef();
@@ -331,17 +335,17 @@
 
 // Test the Write system call (printf to stderr).
 template <typename T>
-void SysWriteTest(RiscVArmSemihostTest *test) {
+void SysWriteTest(RiscVArmSemihostTest* test) {
   testing::internal::CaptureStderr();
 
   // Write string to memory.
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(strlen(kHelloWorld));
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(strlen(kHelloWorld));
   std::memcpy(str_db->raw_ptr(), kHelloWorld, strlen(kHelloWorld));
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, 2);
   db->template Set<T>(1, kStringAddress);
   db->template Set<T>(2, strlen(kHelloWorld));
@@ -367,7 +371,7 @@
 // Systick should just return -1 for now.
 
 template <typename T>
-void SysTickTest(RiscVArmSemihostTest *test) {
+void SysTickTest(RiscVArmSemihostTest* test) {
   AReg<T>(test, 0)->data_buffer()->template Set<T>(0, kSysTickFreq);
   AReg<T>(test, 1)->data_buffer()->template Set<T>(0, 0);
   SemiHost<T>(test)->OnEBreak(SemihostInst<T>(test));
@@ -384,15 +388,15 @@
 // Test SysOpen
 
 template <typename T>
-void SysOpenTest(RiscVArmSemihostTest *test) {
+void SysOpenTest(RiscVArmSemihostTest* test) {
   std::string input_file = absl::StrCat(kDepotPath, "testfiles/", kFileName);
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
   std::memcpy(str_db->raw_ptr(), input_file.c_str(), input_file.length() + 1);
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kStringAddress);
   db->template Set<T>(1, 0);
   db->template Set<T>(2, input_file.length());
@@ -446,15 +450,15 @@
 
 // Test sys open and close.
 template <typename T>
-void SysOpenCloseTest(RiscVArmSemihostTest *test) {
+void SysOpenCloseTest(RiscVArmSemihostTest* test) {
   std::string input_file = absl::StrCat(kDepotPath, "testfiles/", kFileName);
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
   std::memcpy(str_db->raw_ptr(), input_file.c_str(), input_file.length() + 1);
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kStringAddress);
   db->template Set<T>(1, 0);
   db->template Set<T>(2, input_file.length());
@@ -512,16 +516,16 @@
 // Test open-read-close.
 
 template <typename T>
-void SysOpenReadClose(RiscVArmSemihostTest *test) {
+void SysOpenReadClose(RiscVArmSemihostTest* test) {
   // Open the file.
   std::string input_file = absl::StrCat(kDepotPath, "testfiles/", kFileName);
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
   std::memcpy(str_db->raw_ptr(), input_file.c_str(), input_file.length() + 1);
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kStringAddress);
   db->template Set<T>(1, 0);
   db->template Set<T>(2, input_file.length());
@@ -556,7 +560,7 @@
 
   db = test->db_factory()->Allocate<uint8_t>(6);
   test->memory()->Load(kBufferAddress, db, nullptr, nullptr);
-  std::string file_value(reinterpret_cast<char *>(db->raw_ptr()), 6);
+  std::string file_value(reinterpret_cast<char*>(db->raw_ptr()), 6);
   db->DecRef();
 
   // Verify the number of characters read and that the characters are correct.
@@ -590,15 +594,15 @@
 // Test flen (file length).
 
 template <typename T>
-void SysFlenTest(RiscVArmSemihostTest *test) {  // Open the file.
+void SysFlenTest(RiscVArmSemihostTest* test) {  // Open the file.
   std::string input_file = absl::StrCat(kDepotPath, "testfiles/", kFileName);
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
   std::memcpy(str_db->raw_ptr(), input_file.c_str(), input_file.length() + 1);
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kStringAddress);
   db->template Set<T>(1, 0);
   db->template Set<T>(2, input_file.length());
@@ -641,9 +645,9 @@
 // Test tmpnam call.
 
 template <typename T>
-void SysTmpnamTest(RiscVArmSemihostTest *test) {
+void SysTmpnamTest(RiscVArmSemihostTest* test) {
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kBufferAddress);
   db->template Set<T>(1, 1);
   db->template Set<T>(2, kTmpNamLength);
@@ -663,7 +667,7 @@
   auto tmpnam_db = test->db_factory()->Allocate<char>(kTmpNamLength);
   test->memory()->Load(kBufferAddress, tmpnam_db, nullptr, nullptr);
 
-  char *tmp_name = static_cast<char *>(tmpnam_db->raw_ptr());
+  char* tmp_name = static_cast<char*>(tmpnam_db->raw_ptr());
   auto length = strlen(tmp_name);
   EXPECT_LE(length, kTmpNamLength);
   EXPECT_GT(length, 0);
@@ -678,7 +682,7 @@
 // Test that HeapInfo returns a struct with all zeros.
 
 template <typename T>
-void SysHeapInfoTest(RiscVArmSemihostTest *test) {
+void SysHeapInfoTest(RiscVArmSemihostTest* test) {
   // Set up register values.
   AReg<T>(test, 0)->data_buffer()->template Set<T>(0, kSysHeapInfo);
   AReg<T>(test, 1)->data_buffer()->template Set<T>(0, kBufferAddress);
@@ -686,7 +690,7 @@
   SemiHost<T>(test)->OnEBreak(SemihostInst<T>(test));
 
   // Fetch the returned values.
-  auto *db = test->db_factory()->Allocate<T>(4);
+  auto* db = test->db_factory()->Allocate<T>(4);
   test->memory()->Load(kBufferAddress, db, nullptr, nullptr);
   EXPECT_EQ(db->template Get<T>(0), 0);
   EXPECT_EQ(db->template Get<T>(1), 0);
@@ -702,15 +706,15 @@
 // Test that seek works by opening a file, seeking, then reading from the file.
 
 template <typename T>
-void SysSeekTest(RiscVArmSemihostTest *test) {
+void SysSeekTest(RiscVArmSemihostTest* test) {
   std::string input_file = absl::StrCat(kDepotPath, "testfiles/", kFileName);
-  auto *str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
+  auto* str_db = test->db_factory()->Allocate<uint8_t>(input_file.length() + 1);
   std::memcpy(str_db->raw_ptr(), input_file.c_str(), input_file.length() + 1);
   test->memory()->Store(kStringAddress, str_db);
   str_db->DecRef();
 
   // Set up parameter block.
-  auto *db = test->db_factory()->Allocate<T>(3);
+  auto* db = test->db_factory()->Allocate<T>(3);
   db->template Set<T>(0, kStringAddress);
   db->template Set<T>(1, 0);
   db->template Set<T>(2, input_file.length());
@@ -771,7 +775,7 @@
 
   db = test->db_factory()->Allocate<uint8_t>(6);
   test->memory()->Load(kBufferAddress, db, nullptr, nullptr);
-  std::string file_value(reinterpret_cast<char *>(db->raw_ptr()), 4);
+  std::string file_value(reinterpret_cast<char*>(db->raw_ptr()), 4);
   db->DecRef();
 
   // Verify the number of characters read and that the characters are correct.
diff --git a/riscv/test/riscv_breakpoint_test.cc b/riscv/test/riscv_breakpoint_test.cc
index 944693a..f27f0b1 100644
--- a/riscv/test/riscv_breakpoint_test.cc
+++ b/riscv/test/riscv_breakpoint_test.cc
@@ -79,13 +79,13 @@
 
   uint64_t latch_address_ = 0;
   int latch_size_ = -1;
-  RiscVActionPointMemoryInterface *rv_ap_memory_interface_;
-  ActionPointManagerBase *ap_manager_;
-  BreakpointManager *bp_manager_;
+  RiscVActionPointMemoryInterface* rv_ap_memory_interface_;
+  ActionPointManagerBase* ap_manager_;
+  BreakpointManager* bp_manager_;
   DataBufferFactory db_factory_;
-  FlatDemandMemory *memory_;
-  DataBuffer *db2_;
-  DataBuffer *db4_;
+  FlatDemandMemory* memory_;
+  DataBuffer* db2_;
+  DataBuffer* db4_;
 };
 
 TEST_F(RiscVBreakpointTest, Breakpoint16) {
diff --git a/riscv/test/riscv_clint_test.cc b/riscv/test/riscv_clint_test.cc
index d15023f..d5f9b46 100644
--- a/riscv/test/riscv_clint_test.cc
+++ b/riscv/test/riscv_clint_test.cc
@@ -32,7 +32,7 @@
     state_ = new RiscVState("test", RiscVXlen::RV32, &memory_);
     state_->set_on_trap([this](bool is_interrupt, uint64_t trap_value,
                                uint64_t exception_code, uint64_t epc,
-                               const Instruction *inst) {
+                               const Instruction* inst) {
       return TrapHandler(is_interrupt, trap_value, exception_code, epc, inst);
     });
     cycle_counter_.Initialize("cycle_counter", 0);
@@ -43,26 +43,26 @@
   // Gets called on a trap.
   bool TrapHandler(bool is_interrupt, uint64_t trap_value,
                    uint64_t exception_code, uint64_t epc,
-                   const Instruction *inst);
+                   const Instruction* inst);
 
   FlatDemandMemory memory_;
   // Counter.
   SimpleCounter<uint64_t> cycle_counter_;
   // CherIoT state.
-  RiscVState *state_;
+  RiscVState* state_;
   // Latched trap info.
   bool trap_taken_ = false;
   bool trap_is_interrupt_ = false;
   uint64_t trap_value_ = 0;
   uint64_t trap_exception_code_ = 0;
   uint64_t trap_epc_ = 0;
-  const Instruction *trap_inst_ = nullptr;
+  const Instruction* trap_inst_ = nullptr;
 };
 
 // Called when there is a trap in the CherIoT state.
 bool RiscVClintTest::TrapHandler(bool is_interrupt, uint64_t trap_value,
                                  uint64_t exception_code, uint64_t epc,
-                                 const Instruction *inst) {
+                                 const Instruction* inst) {
   trap_taken_ = true;
   trap_is_interrupt_ = is_interrupt;
   trap_value_ = trap_value;
@@ -74,9 +74,9 @@
 
 // Test loads and stores for msip memory mapped register.
 TEST_F(RiscVClintTest, MSip) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, 0xdeadbeef);
-  auto *clint = new RiscVClint(/*period=*/1, state_->mip());
+  auto* clint = new RiscVClint(/*period=*/1, state_->mip());
   cycle_counter_.AddListener(clint);
   // Initial value should be zero.
   clint->Load(kMSip, db, nullptr, nullptr);
@@ -110,8 +110,8 @@
 
 // Test reads/writes to mtimecmp.
 TEST_F(RiscVClintTest, MTimeCmp) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
-  auto *clint = new RiscVClint(/*period=*/100, state_->mip());
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* clint = new RiscVClint(/*period=*/100, state_->mip());
   cycle_counter_.AddListener(clint);
 
   // Verify value of mtimecmp.
@@ -180,7 +180,7 @@
 
 // Test the reads/writes to mtime.
 TEST_F(RiscVClintTest, MTime) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   auto clint = new RiscVClint(/*period=*/100, state_->mip());
   cycle_counter_.AddListener(clint);
   // Initial value should be zero.
diff --git a/riscv/test/riscv_csr_test.cc b/riscv/test/riscv_csr_test.cc
index 10801d3..0ab2a2e 100644
--- a/riscv/test/riscv_csr_test.cc
+++ b/riscv/test/riscv_csr_test.cc
@@ -52,12 +52,12 @@
   ~RiscV32CsrTest() override { delete state_; }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
+  RiscVState* state_;
 };
 
 // Test that the simple csr constructs properly and with the expected values.
 TEST_F(RiscV32CsrTest, SimpleCsrConstruction) {
-  auto *csr0 = new RiscV32SimpleCsr(kCsrName0, RiscVCsrEnum::kUScratch,
+  auto* csr0 = new RiscV32SimpleCsr(kCsrName0, RiscVCsrEnum::kUScratch,
                                     kDeadBeef, state_);
   EXPECT_EQ(csr0->name(), kCsrName0);
   EXPECT_EQ(csr0->index(), static_cast<int>(RiscVCsrEnum::kUScratch));
@@ -68,7 +68,7 @@
   EXPECT_EQ(csr0->read_mask(), kReadMask);
   EXPECT_EQ(csr0->write_mask(), kWriteMask);
 
-  auto *csr1 = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
+  auto* csr1 = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
                                     kReadMask, kWriteMask, state_);
   EXPECT_EQ(csr1->name(), kCsrName1);
   EXPECT_EQ(csr1->index(), static_cast<int>(RiscVCsrEnum::kMScratch));
@@ -81,7 +81,7 @@
 
 // Read and write values from/to the csr.
 TEST_F(RiscV32CsrTest, SimpleCsrReadWrite) {
-  auto *csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
+  auto* csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
                                    kReadMask, kWriteMask, state_);
   EXPECT_EQ(csr->AsUint32(), kA5 & kReadMask);
   csr->Write(kAllOnes);
@@ -93,7 +93,7 @@
 
 // Raw read/writes.
 TEST_F(RiscV32CsrTest, SimpleCsrSetGet) {
-  auto *csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
+  auto* csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kMScratch, kA5,
                                    kReadMask, kWriteMask, state_);
   EXPECT_EQ(csr->GetUint32(), kA5);
   csr->Set(kAllOnes);
@@ -105,7 +105,7 @@
 // Test the csr-set class.
 TEST_F(RiscV32CsrTest, CsrSet) {
   // Allocate new csr.
-  auto *csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kUScratch, kA5,
+  auto* csr = new RiscV32SimpleCsr(kCsrName1, RiscVCsrEnum::kUScratch, kA5,
                                    kReadMask, kWriteMask, state_);
   // Add it to the set, then try to add it again. The second attempt should
   // fail.
@@ -116,7 +116,7 @@
   auto result =
       state_->csr_set()->GetCsr(static_cast<int>(RiscVCsrEnum::kUScratch));
   EXPECT_OK(result.status());
-  auto *stored_csr = result.value();
+  auto* stored_csr = result.value();
   EXPECT_EQ(stored_csr, csr);
   EXPECT_EQ(stored_csr->AsUint32(), (kA5 & kReadMask));
   // Getting a different csr should fail.
@@ -127,12 +127,12 @@
 
 // Test that the shadow csr constructs properly and with the expected values.
 TEST_F(RiscV32CsrTest, ShadowCsrConstruction) {
-  auto *csr0 = new RiscV32SimpleCsr(kCsrName0, RiscVCsrEnum::kMScratch,
+  auto* csr0 = new RiscV32SimpleCsr(kCsrName0, RiscVCsrEnum::kMScratch,
                                     kDeadBeef, state_);
   EXPECT_EQ(csr0->name(), kCsrName0);
   EXPECT_EQ(csr0->index(), static_cast<int>(RiscVCsrEnum::kMScratch));
 
-  auto *csr1 = new RiscVShadowCsr<uint32_t>(
+  auto* csr1 = new RiscVShadowCsr<uint32_t>(
       kCsrName1, RiscVCsrEnum::kUScratch, kReadMask, kWriteMask, state_, csr0);
   EXPECT_EQ(csr1->name(), kCsrName1);
   EXPECT_EQ(csr1->index(), static_cast<int>(RiscVCsrEnum::kUScratch));
diff --git a/riscv/test/riscv_d_instructions_test.cc b/riscv/test/riscv_d_instructions_test.cc
index c6658ba..096cbce 100644
--- a/riscv/test/riscv_d_instructions_test.cc
+++ b/riscv/test/riscv_d_instructions_test.cc
@@ -62,7 +62,7 @@
 
 static bool is_snan(double a) {
   if (!std::isnan(a)) return false;
-  auto ua = *reinterpret_cast<uint64_t *>(&a);
+  auto ua = *reinterpret_cast<uint64_t*>(&a);
   if ((ua & (1ULL << (FPTypeInfo<double>::kSigSize - 1))) == 0) return true;
   return false;
 }
@@ -107,13 +107,13 @@
         double res;
         if (lhs > 0) {
           res = sqrt(lhs);
-          uint64_t dhls = *reinterpret_cast<uint64_t *>(&lhs);
+          uint64_t dhls = *reinterpret_cast<uint64_t*>(&lhs);
           // Get exponent of source value.
           int exp = (dhls & FPTypeInfo<double>::kExpMask) >>
                     FPTypeInfo<double>::kSigSize;
           exp -= FPTypeInfo<double>::kExpBias;
           // Get significand of result.
-          uint64_t dres = *reinterpret_cast<uint64_t *>(&res);
+          uint64_t dres = *reinterpret_cast<uint64_t*>(&res);
           uint64_t sig = dres & FPTypeInfo<double>::kSigMask;
           bool is_square;
           // Slightly different test based on whether the exponent of the source
@@ -132,7 +132,7 @@
           flags = *FPExceptions::kInvalidOp;
         }
         uint64_t val = FPTypeInfo<double>::kCanonicalNaN;
-        res = *reinterpret_cast<const double *>(&val);
+        res = *reinterpret_cast<const double*>(&val);
         return std::tie(res, flags);
       });
 }
@@ -149,7 +149,7 @@
         }
         if (std::isnan(lhs) && std::isnan(rhs)) {
           uint64_t val = FPTypeInfo<double>::kCanonicalNaN;
-          return std::tie(*reinterpret_cast<const double *>(&val), flag);
+          return std::tie(*reinterpret_cast<const double*>(&val), flag);
         }
         if (std::isnan(lhs)) return std::tie(rhs, flag);
         if (std::isnan(rhs)) return std::tie(lhs, flag);
@@ -171,7 +171,7 @@
         }
         if (std::isnan(lhs) && std::isnan(rhs)) {
           uint64_t val = FPTypeInfo<double>::kCanonicalNaN;
-          return std::tie(*reinterpret_cast<const double *>(&val), flag);
+          return std::tie(*reinterpret_cast<const double*>(&val), flag);
         }
         if (std::isnan(lhs)) return std::tie(rhs, flag);
         if (std::isnan(rhs)) return std::tie(lhs, flag);
@@ -299,10 +299,10 @@
   BinaryOpFPTestHelper<double, double, double>(
       "dsgnjn", instruction_, {"d", "d", "d"}, 64,
       [](double lhs, double rhs) -> double {
-        auto lhs_u = *reinterpret_cast<uint64_t *>(&lhs);
-        auto rhs_u = *reinterpret_cast<uint64_t *>(&rhs);
+        auto lhs_u = *reinterpret_cast<uint64_t*>(&lhs);
+        auto rhs_u = *reinterpret_cast<uint64_t*>(&rhs);
         auto res_u = (lhs_u ^ rhs_u) & 0x8000'0000'0000'0000;
-        auto res = *reinterpret_cast<double *>(&res_u);
+        auto res = *reinterpret_cast<double*>(&res_u);
         return copysign(abs(lhs), res);
       });
 }
@@ -358,7 +358,7 @@
             return std::signbit(lhs) ? 1 : 1 << 7;
           case FP_NAN: {
             auto uint_val =
-                *reinterpret_cast<typename FPTypeInfo<double>::IntType *>(&lhs);
+                *reinterpret_cast<typename FPTypeInfo<double>::IntType*>(&lhs);
             bool quiet_nan =
                 (uint_val >> (FPTypeInfo<double>::kSigSize - 1)) & 1;
             return quiet_nan ? 1 << 9 : 1 << 8;
diff --git a/riscv/test/riscv_f_instructions_test.cc b/riscv/test/riscv_f_instructions_test.cc
index ccfc110..91177b2 100644
--- a/riscv/test/riscv_f_instructions_test.cc
+++ b/riscv/test/riscv_f_instructions_test.cc
@@ -59,7 +59,7 @@
 
 static bool is_snan(float a) {
   if (!std::isnan(a)) return false;
-  uint32_t ua = *reinterpret_cast<uint32_t *>(&a);
+  uint32_t ua = *reinterpret_cast<uint32_t*>(&a);
   if ((ua & (1 << (FPTypeInfo<float>::kSigSize - 1))) == 0) return true;
   return false;
 }
@@ -114,7 +114,7 @@
           flags = *FPExceptions::kInvalidOp;
         }
         uint32_t val = FPTypeInfo<float>::kCanonicalNaN;
-        res = *reinterpret_cast<const float *>(&val);
+        res = *reinterpret_cast<const float*>(&val);
         return std::tie(res, flags);
       });
 }
@@ -131,7 +131,7 @@
         }
         if (std::isnan(lhs) && std::isnan(rhs)) {
           uint32_t val = FPTypeInfo<float>::kCanonicalNaN;
-          return std::tie(*reinterpret_cast<const float *>(&val), flag);
+          return std::tie(*reinterpret_cast<const float*>(&val), flag);
         }
         if (std::isnan(lhs)) return std::tie(rhs, flag);
         if (std::isnan(rhs)) return std::tie(lhs, flag);
@@ -153,7 +153,7 @@
         }
         if (std::isnan(lhs) && std::isnan(rhs)) {
           uint32_t val = FPTypeInfo<float>::kCanonicalNaN;
-          return std::tie(*reinterpret_cast<const float *>(&val), flag);
+          return std::tie(*reinterpret_cast<const float*>(&val), flag);
         }
         if (std::isnan(lhs)) return std::tie(rhs, flag);
         if (std::isnan(rhs)) return std::tie(lhs, flag);
@@ -259,10 +259,10 @@
   BinaryOpFPTestHelper<float, float, float>(
       "fsgnjn", instruction_, {"f", "f", "f"}, 32,
       [](float lhs, float rhs) -> float {
-        auto lhs_u = *reinterpret_cast<uint32_t *>(&lhs);
-        auto rhs_u = *reinterpret_cast<uint32_t *>(&rhs);
+        auto lhs_u = *reinterpret_cast<uint32_t*>(&lhs);
+        auto rhs_u = *reinterpret_cast<uint32_t*>(&rhs);
         auto res_u = (lhs_u ^ rhs_u) & 0x8000'0000;
-        auto res = *reinterpret_cast<float *>(&res_u);
+        auto res = *reinterpret_cast<float*>(&res_u);
         return copysign(abs(lhs), res);
       });
 }
@@ -318,7 +318,7 @@
             return std::signbit(lhs) ? 1 : 1 << 7;
           case FP_NAN: {
             auto uint_val =
-                *reinterpret_cast<typename FPTypeInfo<float>::IntType *>(&lhs);
+                *reinterpret_cast<typename FPTypeInfo<float>::IntType*>(&lhs);
             bool quiet_nan =
                 (uint_val >> (FPTypeInfo<float>::kSigSize - 1)) & 1;
             return quiet_nan ? 1 << 9 : 1 << 8;
diff --git a/riscv/test/riscv_fp_host_test.cc b/riscv/test/riscv_fp_host_test.cc
index e8b589e..65ec654 100644
--- a/riscv/test/riscv_fp_host_test.cc
+++ b/riscv/test/riscv_fp_host_test.cc
@@ -26,13 +26,13 @@
     delete instruction_;
   }
 
-  HostFloatingPointInterface *host_fp_interface_;
-  Instruction *instruction_;
+  HostFloatingPointInterface* host_fp_interface_;
+  Instruction* instruction_;
 };
 
 static float sum = 0.0;
 
-static void simple_add(const Instruction *inst) { sum += 1.0; }
+static void simple_add(const Instruction* inst) { sum += 1.0; }
 
 TEST_F(RiscVFPHostTest, SetGetCsr) {
   // Run through all the different values of the csr status bits.
diff --git a/riscv/test/riscv_fp_test_base.h b/riscv/test/riscv_fp_test_base.h
index d54889b..ed5c528 100644
--- a/riscv/test/riscv_fp_test_base.h
+++ b/riscv/test/riscv_fp_test_base.h
@@ -297,7 +297,7 @@
 template <typename S, typename D>
 struct GreaterSize {
   static const bool value =
-      sizeof(S) > sizeof(D) && IsMpactFp<S>::value &&std::is_integral<D>::value;
+      sizeof(S) > sizeof(D) && IsMpactFp<S>::value&& std::is_integral<D>::value;
 };
 
 template <typename S, typename D>
@@ -353,7 +353,7 @@
     child_instruction_ = new Instruction(kInstAddress, state_);
     child_instruction_->set_size(4);
     // Initialize a portion of memory with a known pattern.
-    auto *db = state_->db_factory()->Allocate(8192);
+    auto* db = state_->db_factory()->Allocate(8192);
     auto span = db->Get<uint8_t>();
     for (int i = 0; i < 8192; i++) {
       span[i] = i & 0xff;
@@ -389,15 +389,15 @@
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the given instruction.
   template <typename T>
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<T>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<T>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<T>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<T>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
@@ -405,18 +405,18 @@
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the default instruction.
   template <typename T>
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands<T>(instruction_, sources, destinations);
   }
 
   // named register and sets it to the corresponding value.
   template <typename T, typename RegisterType = XRegister>
   void SetRegisterValues(
-      const std::vector<std::tuple<std::string, const T>> &values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RegisterType>(reg_name).first;
-      auto *db =
+      const std::vector<std::tuple<std::string, const T>>& values) {
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RegisterType>(reg_name).first;
+      auto* db =
           state_->db_factory()->Allocate<typename RegisterType::ValueType>(1);
       db->template Set<T>(0, value);
       reg->SetDataBuffer(db);
@@ -426,12 +426,12 @@
 
   template <typename T, typename RegisterType = XRegister>
   void SetNaNBoxedRegisterValues(
-      const std::vector<std::tuple<std::string, const T>> &values) {
-    for (auto &[reg_name, value] : values) {
+      const std::vector<std::tuple<std::string, const T>>& values) {
+    for (auto& [reg_name, value] : values) {
       typename RegisterType::ValueType reg_value =
           NaNBox<T, typename RegisterType::ValueType>(value);
-      auto *reg = state_->GetRegister<RegisterType>(reg_name).first;
-      auto *db =
+      auto* reg = state_->GetRegister<RegisterType>(reg_name).first;
+      auto* db =
           state_->db_factory()->Allocate<typename RegisterType::ValueType>(1);
       db->template Set<typename RegisterType::ValueType>(0, reg_value);
       reg->SetDataBuffer(db);
@@ -440,7 +440,7 @@
   }
 
   // Initializes the semantic function of the instruction object.
-  void SetSemanticFunction(Instruction *inst,
+  void SetSemanticFunction(Instruction* inst,
                            Instruction::SemanticFunction fcn) {
     inst->set_semantic_function(fcn);
   }
@@ -477,13 +477,13 @@
   // This method uses random values for each field in the fp number.
   template <typename T>
   void FillArrayWithRandomFPValues(absl::Span<T> span) {
-    for (auto &val : span) {
+    for (auto& val : span) {
       val = RandomFPValue<T>();
     }
   }
 
   template <typename R, typename LHS>
-  void UnaryOpFPTestHelper(absl::string_view name, Instruction *inst,
+  void UnaryOpFPTestHelper(absl::string_view name, Instruction* inst,
                            absl::Span<const absl::string_view> reg_prefixes,
                            int delta_position,
                            std::function<R(LHS)> operation) {
@@ -508,14 +508,14 @@
     AppendRegisterOperands<XRegister>({kRmName}, {});
     FillArrayWithRandomFPValues<LHS>(lhs_span);
     using LhsInt = typename FPTypeInfo<LHS>::IntType;
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       if constexpr (std::is_integral<LHS>::value) {
         SetRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
@@ -550,7 +550,7 @@
   // Tester for unary instructions that produce an exception flag value.
   template <typename R, typename LHS>
   void UnaryOpWithFflagsFPTestHelper(
-      absl::string_view name, Instruction *inst,
+      absl::string_view name, Instruction* inst,
       absl::Span<const absl::string_view> reg_prefixes, int delta_position,
       std::function<std::tuple<R, uint32_t>(LHS, uint32_t)> operation) {
     using LhsRegisterType = RVFpRegister;
@@ -574,17 +574,17 @@
       AppendRegisterOperands<RVFpRegister>({}, {kRdName});
     }
     AppendRegisterOperands<XRegister>({kRmName}, {});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     FillArrayWithRandomFPValues<LHS>(lhs_span);
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       if constexpr (std::is_integral<LHS>::value) {
         SetRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
@@ -630,7 +630,7 @@
 
   // Test helper for binary fp instructions.
   template <typename R, typename LHS, typename RHS>
-  void BinaryOpFPTestHelper(absl::string_view name, Instruction *inst,
+  void BinaryOpFPTestHelper(absl::string_view name, Instruction* inst,
                             absl::Span<const absl::string_view> reg_prefixes,
                             int delta_position,
                             std::function<R(LHS, RHS)> operation) {
@@ -662,19 +662,19 @@
       AppendRegisterOperands<RVFpRegister>({}, {kRdName});
     }
     AppendRegisterOperands<XRegister>({kRmName}, {});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     FillArrayWithRandomFPValues<LHS>(lhs_span);
     FillArrayWithRandomFPValues<RHS>(rhs_span);
     using LhsInt = typename FPTypeInfo<LHS>::IntType;
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       SetNaNBoxedRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
       SetNaNBoxedRegisterValues<RHS, RhsRegisterType>({{kR2Name, rhs_span[i]}});
@@ -709,7 +709,7 @@
   // value.
   template <typename R, typename LHS, typename RHS>
   void BinaryOpWithFflagsFPTestHelper(
-      absl::string_view name, Instruction *inst,
+      absl::string_view name, Instruction* inst,
       absl::Span<const absl::string_view> reg_prefixes, int delta_position,
       std::function<std::tuple<R, uint32_t>(LHS, RHS)> operation) {
     using LhsRegisterType = RVFpRegister;
@@ -742,19 +742,19 @@
       AppendRegisterOperands<RVFpRegister>({}, {kRdName});
     }
     AppendRegisterOperands<XRegister>({kRmName}, {});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     FillArrayWithRandomFPValues<LHS>(lhs_span);
     FillArrayWithRandomFPValues<RHS>(rhs_span);
     using LhsInt = typename FPTypeInfo<LHS>::IntType;
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       SetNaNBoxedRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
       SetNaNBoxedRegisterValues<RHS, RhsRegisterType>({{kR2Name, rhs_span[i]}});
@@ -795,7 +795,7 @@
   }
 
   template <typename R, typename LHS, typename MHS, typename RHS>
-  void TernaryOpFPTestHelper(absl::string_view name, Instruction *inst,
+  void TernaryOpFPTestHelper(absl::string_view name, Instruction* inst,
                              absl::Span<const absl::string_view> reg_prefixes,
                              int delta_position,
                              std::function<R(LHS, MHS, RHS)> operation) {
@@ -840,14 +840,14 @@
     FillArrayWithRandomFPValues<MHS>(mhs_span);
     FillArrayWithRandomFPValues<RHS>(rhs_span);
     using LhsInt = typename FPTypeInfo<LHS>::IntType;
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       SetNaNBoxedRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
       SetNaNBoxedRegisterValues<MHS, MhsRegisterType>({{kR2Name, mhs_span[i]}});
@@ -879,7 +879,7 @@
 
   template <typename R, typename LHS, typename MHS, typename RHS>
   void TernaryOpWithFflagsFPTestHelper(
-      absl::string_view name, Instruction *inst,
+      absl::string_view name, Instruction* inst,
       absl::Span<const absl::string_view> reg_prefixes, int delta_position,
       std::function<R(LHS, MHS, RHS)> operation) {
     using LhsRegisterType = RVFpRegister;
@@ -919,20 +919,20 @@
       AppendRegisterOperands<RVFpRegister>({}, {kRdName});
     }
     AppendRegisterOperands<XRegister>({kRmName}, {});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     FillArrayWithRandomFPValues<LHS>(lhs_span);
     FillArrayWithRandomFPValues<MHS>(mhs_span);
     FillArrayWithRandomFPValues<RHS>(rhs_span);
     using LhsInt = typename FPTypeInfo<LHS>::IntType;
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
     for (int i = 0; i < kTestValueLength; i++) {
       SetNaNBoxedRegisterValues<LHS, LhsRegisterType>({{kR1Name, lhs_span[i]}});
       SetNaNBoxedRegisterValues<MHS, MhsRegisterType>({{kR2Name, mhs_span[i]}});
@@ -972,20 +972,16 @@
     }
   }
 
-  absl::Span<XRegister *> xreg() { return absl::Span<XRegister *>(xreg_); }
+  absl::Span<XRegister*> xreg() { return absl::Span<XRegister*>(xreg_); }
 
-  absl::Span<RVFpRegister *> freg() {
-    return absl::Span<RVFpRegister *>(freg_);
-  }
+  absl::Span<RVFpRegister*> freg() { return absl::Span<RVFpRegister*>(freg_); }
 
-  absl::Span<RV64Register *> dreg() {
-    return absl::Span<RV64Register *>(dreg_);
-  }
-  absl::BitGen &bitgen() { return bitgen_; }
-  Instruction *instruction() { return instruction_; }
+  absl::Span<RV64Register*> dreg() { return absl::Span<RV64Register*>(dreg_); }
+  absl::BitGen& bitgen() { return bitgen_; }
+  Instruction* instruction() { return instruction_; }
 
   template <typename From, typename To>
-  To RoundToInteger(From val, uint32_t rm, uint32_t &flags) {
+  To RoundToInteger(From val, uint32_t rm, uint32_t& flags) {
     constexpr To kMax = std::numeric_limits<To>::max();
     constexpr To kMin = std::numeric_limits<To>::min();
     To value = 0;
@@ -1150,14 +1146,14 @@
   }
 
  protected:
-  XRegister *xreg_[32];
-  RV64Register *dreg_[32];
-  RVFpRegister *freg_[32];
-  RiscVState *state_;
-  Instruction *instruction_;
-  Instruction *child_instruction_;
-  FlatDemandMemory *memory_;
-  RiscVFPState *rv_fp_;
+  XRegister* xreg_[32];
+  RV64Register* dreg_[32];
+  RVFpRegister* freg_[32];
+  RiscVState* state_;
+  Instruction* instruction_;
+  Instruction* child_instruction_;
+  FlatDemandMemory* memory_;
+  RiscVFPState* rv_fp_;
   absl::BitGen bitgen_;
 };
 
@@ -1376,7 +1372,7 @@
   U Convert(FPRoundingMode rm = FPRoundingMode::kRoundToNearest);
 
   template <typename U>
-  U ConvertWithFlags(uint32_t &fflags,
+  U ConvertWithFlags(uint32_t& fflags,
                      FPRoundingMode rm = FPRoundingMode::kRoundToNearest) {
     fflags_ = 0;
     U ret = Convert<U>(rm);
@@ -1396,8 +1392,8 @@
 
   template <typename IntReturnType, typename FpReturnType>
   void NarrowingConversionMakeExponentAndSignificand(FPRoundingMode,
-                                                     IntReturnType &,
-                                                     IntReturnType &);
+                                                     IntReturnType&,
+                                                     IntReturnType&);
 
   template <typename IntReturnType, typename FpReturnType>
   IntReturnType NarrowingConversionHandleInfinity(FPRoundingMode);
@@ -1423,18 +1419,18 @@
     return value;
   }
 
-  const int *GetRoundingTable(FPRoundingMode rm) {
+  const int* GetRoundingTable(FPRoundingMode rm) {
     switch (rm) {
       case FPRoundingMode::kRoundToNearest:
-        return static_cast<const int *>(internal::kRoundToNearestTable);
+        return static_cast<const int*>(internal::kRoundToNearestTable);
       case FPRoundingMode::kRoundTowardsZero:
-        return static_cast<const int *>(internal::kRoundTowardsZeroTable);
+        return static_cast<const int*>(internal::kRoundTowardsZeroTable);
       case FPRoundingMode::kRoundDown:
-        return static_cast<const int *>(internal::kRoundDownTable);
+        return static_cast<const int*>(internal::kRoundDownTable);
       case FPRoundingMode::kRoundUp:
-        return static_cast<const int *>(internal::kRoundUpTable);
+        return static_cast<const int*>(internal::kRoundUpTable);
       default:
-        return static_cast<const int *>(internal::kRoundToNearestTable);
+        return static_cast<const int*>(internal::kRoundToNearestTable);
     }
   }
 };  // class FpConversionsTestHelper
@@ -1510,8 +1506,8 @@
 template <typename T>
 template <typename IntReturnType, typename FpReturnType>
 void FpConversionsTestHelper<T>::NarrowingConversionMakeExponentAndSignificand(
-    FPRoundingMode rm, IntReturnType &out_exponent,
-    IntReturnType &out_significand) {
+    FPRoundingMode rm, IntReturnType& out_exponent,
+    IntReturnType& out_significand) {
   int32_t e_max = FPTypeInfo<FpReturnType>::kExpBias;
   int32_t e_min = 1 - e_max;
   IntType in_exponent = (unsigned_value_ & FPTypeInfo<FpType>::kExpMask) >>
diff --git a/riscv/test/riscv_getters_zfh.h b/riscv/test/riscv_getters_zfh.h
index 0722c3e..4ec622f 100644
--- a/riscv/test/riscv_getters_zfh.h
+++ b/riscv/test/riscv_getters_zfh.h
@@ -35,10 +35,10 @@
 using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
 
 template <typename Enum, typename Extractors, typename IntegerRegister>
-void AddRiscVZfhSourceScalarGetters(SourceOpGetterMap &getter_map,
-                                    RiscVEncodingCommon *common) {
+void AddRiscVZfhSourceScalarGetters(SourceOpGetterMap& getter_map,
+                                    RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::Inst32Format::ExtractRs1(common->inst_word());
     if (num == 0) return new generic::IntLiteralOperand<0>({1});
     return GetRegisterSourceOp<IntegerRegister>(
@@ -46,16 +46,16 @@
         kXRegisterAliases[num]);
   });
   // I in IImm12 stands for IType instructions.
-  Insert(getter_map, *Enum::kIImm12, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kIImm12, [common]() -> SourceOperandInterface* {
     const auto num = Extractors::IType::ExtractImm12(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
   // S in SImm12 stands for SType instructions.
-  Insert(getter_map, *Enum::kSImm12, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kSImm12, [common]() -> SourceOperandInterface* {
     const auto num = Extractors::SType::ExtractSImm(common->inst_word());
     return new generic::ImmediateOperand<int32_t>(num);
   });
-  Insert(getter_map, *Enum::kRm, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kRm, [common]() -> SourceOperandInterface* {
     const auto num =
         Extractors::Inst32Format::ExtractFunc3(common->inst_word());
     return new generic::ImmediateOperand<uint8_t>(num);
@@ -63,22 +63,22 @@
 }
 
 template <typename Enum, typename Extractors, typename FloatRegister>
-void AddRiscVZfhSourceFloatGetters(SourceOpGetterMap &getter_map,
-                                   RiscVEncodingCommon *common) {
+void AddRiscVZfhSourceFloatGetters(SourceOpGetterMap& getter_map,
+                                   RiscVEncodingCommon* common) {
   // Source operand getters.
-  Insert(getter_map, *Enum::kFrs1, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs1, [common]() -> SourceOperandInterface* {
     int num = Extractors::Inst32Format::ExtractRs1(common->inst_word());
     return GetRegisterSourceOp<FloatRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kFrs2, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs2, [common]() -> SourceOperandInterface* {
     int num = Extractors::Inst32Format::ExtractRs2(common->inst_word());
     return GetRegisterSourceOp<FloatRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
         kFRegisterAliases[num]);
   });
-  Insert(getter_map, *Enum::kFrs3, [common]() -> SourceOperandInterface * {
+  Insert(getter_map, *Enum::kFrs3, [common]() -> SourceOperandInterface* {
     int num = Extractors::Inst32Format::ExtractRs3(common->inst_word());
     return GetRegisterSourceOp<FloatRegister>(
         common->state(), absl::StrCat(RiscVState::kFregPrefix, num),
@@ -87,29 +87,29 @@
 }
 
 template <typename Enum, typename Extractors, typename IntegerRegister>
-void AddRiscVZfhDestScalarGetters(DestOpGetterMap &getter_map,
-                                  RiscVEncodingCommon *common) {
+void AddRiscVZfhDestScalarGetters(DestOpGetterMap& getter_map,
+                                  RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kRd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            auto num = Extractors::Inst32Format::ExtractRd(common->inst_word());
            std::string name = absl::StrCat(RiscVState::kXregPrefix, num);
            return mpact::sim::riscv::GetRegisterDestinationOp<IntegerRegister>(
                common->state(), name, latency);
          });
   Insert(getter_map, *Enum::kFflags,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            return GetCSRSetBitsDestinationOp<uint32_t>(common->state(),
                                                        "fflags", latency, "");
          });
 }
 
 template <typename Enum, typename Extractors, typename FloatRegister>
-void AddRiscVZfhDestFloatGetters(DestOpGetterMap &getter_map,
-                                 RiscVEncodingCommon *common) {
+void AddRiscVZfhDestFloatGetters(DestOpGetterMap& getter_map,
+                                 RiscVEncodingCommon* common) {
   // Destination operand getters.
   Insert(getter_map, *Enum::kFrd,
-         [common](int latency) -> DestinationOperandInterface * {
+         [common](int latency) -> DestinationOperandInterface* {
            auto num = Extractors::Inst32Format::ExtractRd(common->inst_word());
            std::string name = absl::StrCat(RiscVState::kFregPrefix, num);
            return mpact::sim::riscv::GetRegisterDestinationOp<FloatRegister>(
@@ -123,8 +123,8 @@
 // extraction functions, and the IntRegister and FpRegister types that are used
 // to construct the register operand.
 template <typename Enum, typename Extractors>
-void AddRiscVZfhSimpleResourceGetters(SimpleResourceGetterMap &getter_map,
-                                      RiscVEncodingCommon *common) {
+void AddRiscVZfhSimpleResourceGetters(SimpleResourceGetterMap& getter_map,
+                                      RiscVEncodingCommon* common) {
   // TODO(julianmb): Add resource getters when appropriate.
 }
 
diff --git a/riscv/test/riscv_i_instructions_test.cc b/riscv/test/riscv_i_instructions_test.cc
index 1584c52..be6f98e 100644
--- a/riscv/test/riscv_i_instructions_test.cc
+++ b/riscv/test/riscv_i_instructions_test.cc
@@ -71,29 +71,29 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       instruction_->AppendSource(src);
     }
   }
@@ -102,9 +102,9 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -119,13 +119,13 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
-  FlatDemandMemory *memory_;
-  RiscVState *state_;
-  Instruction *instruction_;
+  FlatDemandMemory* memory_;
+  RiscVState* state_;
+  Instruction* instruction_;
 };
 
 // Almost all the tests below follow the same pattern. There are two phases.
@@ -407,7 +407,7 @@
 
 TEST_F(RV32IInstructionTest, RV32ILw) {
   // Initialize memory.
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, kMemValue);
   state_->StoreMemory(instruction_, kMemAddress + kOffset, db);
   db->DecRef();
@@ -416,7 +416,7 @@
   AppendRegisterOperands({kX1}, {});
   AppendImmediateOperands<uint32_t>({kOffset});
   SetSemanticFunction(&::mpact::sim::riscv::RV32::RiscVILw);
-  auto *child = new Instruction(state_);
+  auto* child = new Instruction(state_);
   child->set_semantic_function(&::mpact::sim::riscv::RV32::RiscVILwChild);
   AppendRegisterOperands(child, {}, {kX3});
   instruction_->AppendChild(child);
@@ -429,7 +429,7 @@
 
 TEST_F(RV32IInstructionTest, RV32ILh) {
   // Initialize memory.
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, kMemValue);
   state_->StoreMemory(instruction_, kMemAddress + kOffset, db);
   db->DecRef();
@@ -438,7 +438,7 @@
   AppendRegisterOperands({kX1}, {});
   AppendImmediateOperands<uint32_t>({kOffset});
   SetSemanticFunction(&::mpact::sim::riscv::RV32::RiscVILh);
-  auto *child = new Instruction(state_);
+  auto* child = new Instruction(state_);
   child->set_semantic_function(&::mpact::sim::riscv::RV32::RiscVILhChild);
   AppendRegisterOperands(child, {}, {kX3});
   instruction_->AppendChild(child);
@@ -451,7 +451,7 @@
 
 TEST_F(RV32IInstructionTest, RV32ILhu) {
   // Initialize memory.
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, kMemValue);
   state_->StoreMemory(instruction_, kMemAddress + kOffset, db);
   db->DecRef();
@@ -460,7 +460,7 @@
   AppendRegisterOperands({kX1}, {});
   AppendImmediateOperands<uint32_t>({kOffset});
   SetSemanticFunction(&::mpact::sim::riscv::RV32::RiscVILhu);
-  auto *child = new Instruction(state_);
+  auto* child = new Instruction(state_);
   child->set_semantic_function(&::mpact::sim::riscv::RV32::RiscVILhuChild);
   AppendRegisterOperands(child, {}, {kX3});
   instruction_->AppendChild(child);
@@ -473,7 +473,7 @@
 
 TEST_F(RV32IInstructionTest, RV32ILb) {
   // Initialize memory.
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, kMemValue);
   state_->StoreMemory(instruction_, kMemAddress + kOffset, db);
   db->DecRef();
@@ -482,7 +482,7 @@
   AppendRegisterOperands({kX1}, {});
   AppendImmediateOperands<uint32_t>({kOffset});
   SetSemanticFunction(&::mpact::sim::riscv::RV32::RiscVILb);
-  auto *child = new Instruction(state_);
+  auto* child = new Instruction(state_);
   child->set_semantic_function(&::mpact::sim::riscv::RV32::RiscVILbChild);
   AppendRegisterOperands(child, {}, {kX3});
   instruction_->AppendChild(child);
@@ -495,7 +495,7 @@
 
 TEST_F(RV32IInstructionTest, RV32ILbu) {
   // Initialize memory.
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   db->Set<uint32_t>(0, kMemValue);
   state_->StoreMemory(instruction_, kMemAddress + kOffset, db);
   db->DecRef();
@@ -504,7 +504,7 @@
   AppendRegisterOperands({kX1}, {});
   AppendImmediateOperands<uint32_t>({kOffset});
   SetSemanticFunction(&::mpact::sim::riscv::RV32::RiscVILbu);
-  auto *child = new Instruction(state_);
+  auto* child = new Instruction(state_);
   child->set_semantic_function(&::mpact::sim::riscv::RV32::RiscVILbuChild);
   AppendRegisterOperands(child, {}, {kX3});
   instruction_->AppendChild(child);
@@ -526,7 +526,7 @@
 
   SetRegisterValues<uint32_t>({{kX1, kMemAddress}, {kX3, kMemValue}});
   instruction_->Execute(nullptr);
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   state_->LoadMemory(instruction_, kMemAddress + kOffset, db, nullptr, nullptr);
   EXPECT_EQ(db->Get<uint32_t>(0), kMemValue);
   db->DecRef();
@@ -540,7 +540,7 @@
   SetRegisterValues<uint32_t>({{kX1, kMemAddress}, {kX3, kMemValue}});
   instruction_->Execute(nullptr);
 
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   state_->LoadMemory(instruction_, kMemAddress + kOffset, db, nullptr, nullptr);
   EXPECT_EQ(db->Get<uint32_t>(0), static_cast<uint16_t>(kMemValue));
   db->DecRef();
@@ -554,7 +554,7 @@
   SetRegisterValues<uint32_t>({{kX1, kMemAddress}, {kX3, kMemValue}});
   instruction_->Execute(nullptr);
 
-  auto *db = state_->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(1);
   state_->LoadMemory(instruction_, kMemAddress + kOffset, db, nullptr, nullptr);
   EXPECT_EQ(db->Get<uint32_t>(0), static_cast<uint8_t>(kMemValue));
   db->DecRef();
diff --git a/riscv/test/riscv_plic_test.cc b/riscv/test/riscv_plic_test.cc
index 62c150c..0473f53 100644
--- a/riscv/test/riscv_plic_test.cc
+++ b/riscv/test/riscv_plic_test.cc
@@ -150,15 +150,15 @@
   }
 
   // Accessors.
-  RiscVPlic *plic() { return plic_; }
-  DataBufferFactory &db_factory() { return db_factory_; }
-  MockRiscVInterruptTarget *target(int i) { return target_[i]; }
+  RiscVPlic* plic() { return plic_; }
+  DataBufferFactory& db_factory() { return db_factory_; }
+  MockRiscVInterruptTarget* target(int i) { return target_[i]; }
 
  private:
-  DataBuffer *db_;
+  DataBuffer* db_;
   DataBufferFactory db_factory_;
-  RiscVPlic *plic_ = nullptr;
-  MockRiscVInterruptTarget *target_[kNumContexts];
+  RiscVPlic* plic_ = nullptr;
+  MockRiscVInterruptTarget* target_[kNumContexts];
 };
 
 // Test that the initial state of the PLIC is as expected. Nothing enabled,
diff --git a/riscv/test/riscv_state_test.cc b/riscv/test/riscv_state_test.cc
index eb29b70..26fca24 100644
--- a/riscv/test/riscv_state_test.cc
+++ b/riscv/test/riscv_state_test.cc
@@ -40,23 +40,23 @@
 
 TEST(RiscVStateTest, Basic) {
   FlatDemandMemory memory;
-  auto *state = new RiscVState("test", RiscVXlen::RV32, &memory);
+  auto* state = new RiscVState("test", RiscVXlen::RV32, &memory);
   // Make sure pc has been created.
   auto iter = state->registers()->find("pc");
-  auto *ptr = (iter != state->registers()->end()) ? iter->second : nullptr;
+  auto* ptr = (iter != state->registers()->end()) ? iter->second : nullptr;
   CHECK_NE(ptr, nullptr);
   // Set pc to 0x1000, then read value back through pc operand.
-  auto *pc = static_cast<RV32Register *>(ptr);
+  auto* pc = static_cast<RV32Register*>(ptr);
   pc->data_buffer()->Set<uint32_t>(0, kPcValue);
-  auto *pc_op = state->pc_operand();
+  auto* pc_op = state->pc_operand();
   EXPECT_EQ(pc_op->AsUint32(0), kPcValue);
   delete state;
 }
 
 TEST(RiscVStateTest, Memory) {
   FlatDemandMemory memory;
-  auto *state = new RiscVState("test", RiscVXlen::RV32, &memory);
-  auto *db = state->db_factory()->Allocate<uint32_t>(1);
+  auto* state = new RiscVState("test", RiscVXlen::RV32, &memory);
+  auto* db = state->db_factory()->Allocate<uint32_t>(1);
   state->LoadMemory(nullptr, kMemAddr, db, nullptr, nullptr);
   EXPECT_EQ(db->Get<uint32_t>(0), 0);
   db->Set<uint32_t>(0, kMemValue);
@@ -70,11 +70,11 @@
 
 TEST(RiscVStateTest, OutOfBoundLoad) {
   FlatDemandMemory memory;
-  auto *state = new RiscVState("test", RiscVXlen::RV32, &memory);
+  auto* state = new RiscVState("test", RiscVXlen::RV32, &memory);
   state->set_max_physical_address(kMemAddr - 4);
   state->set_on_trap([](bool is_interrupt, uint64_t trap_value,
                         uint64_t exception_code, uint64_t epc,
-                        const mpact::sim::riscv::Instruction *inst) -> bool {
+                        const mpact::sim::riscv::Instruction* inst) -> bool {
     if (exception_code ==
         static_cast<uint64_t>(
             mpact::sim::riscv::ExceptionCode::kLoadAccessFault)) {
@@ -83,9 +83,9 @@
     }
     return false;
   });
-  auto *db = state->db_factory()->Allocate<uint32_t>(1);
+  auto* db = state->db_factory()->Allocate<uint32_t>(1);
   // Create a dummy instruction so trap can dereference the address.
-  auto *dummy_inst = new mpact::sim::riscv::Instruction(0x0, nullptr);
+  auto* dummy_inst = new mpact::sim::riscv::Instruction(0x0, nullptr);
   dummy_inst->set_size(4);
   testing::internal::CaptureStderr();
   state->LoadMemory(dummy_inst, kMemAddr, db, nullptr, nullptr);
diff --git a/riscv/test/riscv_top_test.cc b/riscv/test/riscv_top_test.cc
index 0176c02..7e0657f 100644
--- a/riscv/test/riscv_top_test.cc
+++ b/riscv/test/riscv_top_test.cc
@@ -69,8 +69,8 @@
 
 // Helper function to get symbol addresses from the loader.
 static bool GetMagicAddresses(
-    mpact::sim::util::ElfProgramLoader *loader,
-    mpact::sim::riscv::RiscV32HtifSemiHost::SemiHostAddresses *magic) {
+    mpact::sim::util::ElfProgramLoader* loader,
+    mpact::sim::riscv::RiscV32HtifSemiHost::SemiHostAddresses* magic) {
   auto result = loader->GetSymbol("tohost_ready");
   if (!result.ok()) return false;
   magic->tohost_ready = result.value().first;
@@ -93,8 +93,8 @@
 // Helper RAII style class for setting up HTIF semihosting.
 class HtifSemihostSetup {
  public:
-  HtifSemihostSetup(RiscVTop *top, mpact::sim::util::ElfProgramLoader *loader,
-                    mpact::sim::util::MemoryInterface *memory)
+  HtifSemihostSetup(RiscVTop* top, mpact::sim::util::ElfProgramLoader* loader,
+                    mpact::sim::util::MemoryInterface* memory)
       : memory_(memory), state_(top->state()) {
     mpact::sim::riscv::RiscV32HtifSemiHost::SemiHostAddresses magic;
     if (GetMagicAddresses(loader, &magic)) {
@@ -120,17 +120,17 @@
   }
 
  private:
-  mpact::sim::util::MemoryInterface *memory_ = nullptr;
-  mpact::sim::riscv::RiscVState *state_ = nullptr;
-  mpact::sim::util::MemoryWatcher *watcher_ = nullptr;
-  mpact::sim::riscv::RiscV32HtifSemiHost *semihost_ = nullptr;
+  mpact::sim::util::MemoryInterface* memory_ = nullptr;
+  mpact::sim::riscv::RiscVState* state_ = nullptr;
+  mpact::sim::util::MemoryWatcher* watcher_ = nullptr;
+  mpact::sim::riscv::RiscV32HtifSemiHost* semihost_ = nullptr;
 };
 
 // Helper RAII style class for setting up ARM semihosting.
 class ArmSemihostSetup {
  public:
-  explicit ArmSemihostSetup(RiscVTop *top,
-                            mpact::sim::util::MemoryInterface *memory) {
+  explicit ArmSemihostSetup(RiscVTop* top,
+                            mpact::sim::util::MemoryInterface* memory) {
     auto xlen = top->state()->xlen();
     if (xlen == RiscVXlen::RV64) {
       semihost_ = new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord64,
@@ -141,7 +141,7 @@
     }
     auto semihost = semihost_;
     top->state()->AddEbreakHandler([semihost,
-                                    top](const Instruction *inst) -> bool {
+                                    top](const Instruction* inst) -> bool {
       if (semihost->IsSemihostingCall(inst)) {
         semihost->OnEBreak(inst);
       } else {
@@ -157,7 +157,7 @@
   ~ArmSemihostSetup() { delete semihost_; }
 
  private:
-  mpact::sim::riscv::RiscVArmSemihost *semihost_ = nullptr;
+  mpact::sim::riscv::RiscVArmSemihost* semihost_ = nullptr;
 };
 
 class RiscVTopTest : public testing::Test {
@@ -207,12 +207,12 @@
   }
 
   uint64_t entry_point_;
-  RiscVTop *riscv_top_ = nullptr;
-  mpact::sim::util::ElfProgramLoader *loader_ = nullptr;
-  FlatDemandMemory *memory_ = nullptr;
-  RiscVState *state_ = nullptr;
-  RiscVFPState *fp_state_ = nullptr;
-  DecoderInterface *decoder_ = nullptr;
+  RiscVTop* riscv_top_ = nullptr;
+  mpact::sim::util::ElfProgramLoader* loader_ = nullptr;
+  FlatDemandMemory* memory_ = nullptr;
+  RiscVState* state_ = nullptr;
+  RiscVFPState* fp_state_ = nullptr;
+  DecoderInterface* decoder_ = nullptr;
 };
 
 // Runs the program from beginning to end using HTIF semihosting.
@@ -460,7 +460,7 @@
   EXPECT_EQ(riscv_top_->WriteRegister("x32", word_value).code(),
             absl::StatusCode::kNotFound);
   // Aliases.
-  for (auto &[name, alias] : {std::tuple<std::string, std::string>{"x1", "ra"},
+  for (auto& [name, alias] : {std::tuple<std::string, std::string>{"x1", "ra"},
                               {"x4", "tp"},
                               {"x8", "s0"}}) {
     uint32_t write_value = 0xba5eba11;
diff --git a/riscv/test/riscv_vector_basic_bit_manipulation_test.cc b/riscv/test/riscv_vector_basic_bit_manipulation_test.cc
index 96f4843..e680097 100644
--- a/riscv/test/riscv_vector_basic_bit_manipulation_test.cc
+++ b/riscv/test/riscv_vector_basic_bit_manipulation_test.cc
@@ -51,7 +51,7 @@
 // Helper function for testing the vandn_vv instruction. Generate the expected
 // result using the bitwise operator.
 template <typename T>
-inline void VandnVVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VandnVVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vandn);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vandn", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -61,7 +61,7 @@
 // Helper function for testing the vandn_vx instruction. Generate the expected
 // result using the bitwise operator.
 template <typename T>
-inline void VandnVXHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VandnVXHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vandn);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vandn", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -71,7 +71,7 @@
 // Helper function for testing the vbrev_v instruction. Generate the expected
 // result by reversing the input bits.
 template <typename T>
-inline void VbrevVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VbrevVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vbrev);
   tester->UnaryOpTestHelperV<T, T>(absl::StrCat("Vbrev", sizeof(T) * 8, "v"),
                                    /*sew*/ sizeof(T) * 8, tester->instruction(),
@@ -88,7 +88,7 @@
 // Helper function for testing the vbrev8_v instruction. Generate the expected
 // result by reversing the bits in each of the input bytes.
 template <typename T>
-inline void Vbrev8VHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void Vbrev8VHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vbrev8);
   tester->UnaryOpTestHelperV<T, T>(
       absl::StrCat("Vbrev8", sizeof(T) * 8, "v"), /*sew*/ sizeof(T) * 8,
@@ -110,7 +110,7 @@
 // Helper function for testing the vbrev_v instruction. Generate the expected
 // result by reversing the bytes of the input.
 template <typename T>
-inline void Vrev8VHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void Vrev8VHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vrev8);
   tester->UnaryOpTestHelperV<T, T>(
       absl::StrCat("Vrev8", sizeof(T) * 8, "v"), /*sew*/ sizeof(T) * 8,
@@ -127,7 +127,7 @@
 // Helper function for testing the vrol_vv instruction. Generate the expected
 // result by rotating the input bits left.
 template <typename T>
-inline void VrolVVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VrolVVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vrol);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vrol", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -143,7 +143,7 @@
 // Helper function for testing the vrol_vx instruction. Generate the expected
 // result by rotating the input bits left.
 template <typename T>
-inline void VrolVXHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VrolVXHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vrol);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vrol", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -159,7 +159,7 @@
 // Helper function for testing the vror_vv instruction. Generate the expected
 // result by rotating the input bits right.
 template <typename T>
-inline void VrorVVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VrorVVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vror);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vror", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -175,7 +175,7 @@
 // Helper function for testing the vror_vx instruction. Generate the expected
 // result by rotating the input bits right.
 template <typename T>
-inline void VrorVXHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VrorVXHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vror);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vror", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -191,7 +191,7 @@
 // Helper function for testing the vror_vi instruction. Generate the expected
 // result by rotating the input bits right.
 template <typename T>
-inline void VrorVIHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VrorVIHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vror);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vror", sizeof(T) * 8, "vi"), /*sew*/ sizeof(T) * 8,
@@ -207,7 +207,7 @@
 // Helper function for testing the vclz_v instruction. Generate the expected
 // result by counting the number of leading zeros in the input.
 template <typename T>
-inline void VclzVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VclzVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vclz);
   tester->UnaryOpTestHelperV<T, T>(
       absl::StrCat("vclz", sizeof(T) * 8, "v"), /*sew*/ sizeof(T) * 8,
@@ -226,7 +226,7 @@
 // Helper function for testing the vctz_v instruction. Generate the expected
 // result by counting the number of trailing zeros in the input.
 template <typename T>
-inline void VctzVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VctzVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&Vctz);
   tester->UnaryOpTestHelperV<T, T>(absl::StrCat("vctz", sizeof(T) * 8, "v"),
                                    /*sew*/ sizeof(T) * 8, tester->instruction(),
@@ -245,7 +245,7 @@
 // Helper function for testing the vcpop_v instruction. Generate the expected
 // result by counting the number of bits set in the input.
 template <typename T>
-inline void VcpopVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VcpopVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   tester->SetSemanticFunction(&VectorVcpop);
   tester->UnaryOpTestHelperV<T, T>(absl::StrCat("vcpop", sizeof(T) * 8, "v"),
                                    /*sew*/ sizeof(T) * 8, tester->instruction(),
@@ -262,7 +262,7 @@
 // Helper function for testing the vwsll_vv instruction. Generate the expected
 // result by shifting the widened input left.
 template <typename T>
-inline void VwsllVVHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VwsllVVHelper(RiscVVectorBasicBitManipulationTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsll);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -277,7 +277,7 @@
 // Helper function for testing the vwsll_vx instruction. Generate the expected
 // result by shifting the widened input left.
 template <typename T>
-inline void VwsllVXHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VwsllVXHelper(RiscVVectorBasicBitManipulationTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsll);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -292,7 +292,7 @@
 // Helper function for testing the vwsll_vi instruction. Generate the expected
 // result by shifting the widened input left.
 template <typename T>
-inline void VwsllVIHelper(RiscVVectorBasicBitManipulationTest *tester) {
+inline void VwsllVIHelper(RiscVVectorBasicBitManipulationTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsll);
   tester->BinaryOpTestHelperVV<WT, T, T>(
diff --git a/riscv/test/riscv_vector_fp_compare_instructions_test.cc b/riscv/test/riscv_vector_fp_compare_instructions_test.cc
index 58de677..7681c59 100644
--- a/riscv/test/riscv_vector_fp_compare_instructions_test.cc
+++ b/riscv/test/riscv_vector_fp_compare_instructions_test.cc
@@ -71,7 +71,7 @@
   // use the mask bit.
   template <typename Vs2, typename Vs1>
   void BinaryMaskFPOpWithMaskTestHelperVV(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<uint8_t(Vs2, Vs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vs2) && byte_sew != sizeof(Vs1)) {
@@ -95,14 +95,14 @@
     // Overwrite the first few values of the input data with infinities,
     // zeros, denormals and NaNs.
     using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
     // Make every third value the same (at least if the types are same sized).
     for (int i = 0; i < std::min(vs1_size, vs2_size); i += 3) {
       vs1_span[i] = static_cast<Vs1>(vs2_span[i]);
@@ -172,10 +172,10 @@
               uint8_t expected_value =
                   operation(vs2_value[i], vs1_value[i], mask_value);
               auto int_vs2_val =
-                  *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                  *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                       &vs2_value[i]);
               auto int_vs1_val =
-                  *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType *>(
+                  *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType*>(
                       &vs1_value[i]);
               EXPECT_EQ(expected_value, inst_value)
                   << absl::StrCat(name, "[", i, "] op(", vs2_value[i], "[0x",
@@ -197,7 +197,7 @@
   // not use the mask bit.
   template <typename Vs2, typename Vs1>
   void BinaryMaskFPOpTestHelperVV(absl::string_view name, int sew,
-                                  Instruction *inst,
+                                  Instruction* inst,
                                   std::function<uint8_t(Vs2, Vs1)> operation) {
     BinaryMaskFPOpWithMaskTestHelperVV<Vs2, Vs1>(
         name, sew, inst,
@@ -213,7 +213,7 @@
   // use the mask bit.
   template <typename Vs2, typename Fs1>
   void BinaryMaskFPOpWithMaskTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<uint8_t(Vs2, Fs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vs2) && byte_sew != sizeof(Fs1)) {
@@ -297,10 +297,10 @@
               uint8_t expected_value =
                   operation(vs2_value[i], fs1_value, mask_value);
               auto int_vs2_val =
-                  *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                  *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                       &vs2_value[i]);
               auto int_fs1_val =
-                  *reinterpret_cast<typename FPTypeInfo<Fs1>::IntType *>(
+                  *reinterpret_cast<typename FPTypeInfo<Fs1>::IntType*>(
                       &fs1_value);
               EXPECT_EQ(expected_value, inst_value)
                   << absl::StrCat(name, "[", i, "] op(", vs2_value[i], "[0x",
@@ -321,7 +321,7 @@
   // use the mask bit.
   template <typename Vs2, typename Fs1>
   void BinaryMaskFPOpTestHelperVX(absl::string_view name, int sew,
-                                  Instruction *inst,
+                                  Instruction* inst,
                                   std::function<uint8_t(Vs2, Fs1)> operation) {
     BinaryMaskFPOpWithMaskTestHelperVX<Vs2, Fs1>(
         name, sew, inst,
diff --git a/riscv/test/riscv_vector_fp_instructions_test.cc b/riscv/test/riscv_vector_fp_instructions_test.cc
index cf123c6..98d1673 100644
--- a/riscv/test/riscv_vector_fp_instructions_test.cc
+++ b/riscv/test/riscv_vector_fp_instructions_test.cc
@@ -102,7 +102,7 @@
   // etc.) during testing, not just random values.
   template <typename Vd, typename Vs2, typename Vs1>
   void TernaryOpFPTestHelperVV(absl::string_view name, int sew,
-                               Instruction *inst, int delta_position,
+                               Instruction* inst, int delta_position,
                                std::function<Vd(Vs2, Vs1, Vd)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -137,49 +137,49 @@
       using VdInt = typename FPTypeInfo<Vd>::IntType;
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
-      *reinterpret_cast<VdInt *>(&vd_span[0]) = FPTypeInfo<Vd>::kQNaN;
-      *reinterpret_cast<VdInt *>(&vd_span[1]) = FPTypeInfo<Vd>::kSNaN;
-      *reinterpret_cast<VdInt *>(&vd_span[2]) = FPTypeInfo<Vd>::kPosInf;
-      *reinterpret_cast<VdInt *>(&vd_span[3]) = FPTypeInfo<Vd>::kNegInf;
-      *reinterpret_cast<VdInt *>(&vd_span[4]) = FPTypeInfo<Vd>::kPosZero;
-      *reinterpret_cast<VdInt *>(&vd_span[5]) = FPTypeInfo<Vd>::kNegZero;
-      *reinterpret_cast<VdInt *>(&vd_span[6]) = FPTypeInfo<Vd>::kPosDenorm;
-      *reinterpret_cast<VdInt *>(&vd_span[7]) = FPTypeInfo<Vd>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<VdInt*>(&vd_span[0]) = FPTypeInfo<Vd>::kQNaN;
+      *reinterpret_cast<VdInt*>(&vd_span[1]) = FPTypeInfo<Vd>::kSNaN;
+      *reinterpret_cast<VdInt*>(&vd_span[2]) = FPTypeInfo<Vd>::kPosInf;
+      *reinterpret_cast<VdInt*>(&vd_span[3]) = FPTypeInfo<Vd>::kNegInf;
+      *reinterpret_cast<VdInt*>(&vd_span[4]) = FPTypeInfo<Vd>::kPosZero;
+      *reinterpret_cast<VdInt*>(&vd_span[5]) = FPTypeInfo<Vd>::kNegZero;
+      *reinterpret_cast<VdInt*>(&vd_span[6]) = FPTypeInfo<Vd>::kPosDenorm;
+      *reinterpret_cast<VdInt*>(&vd_span[7]) = FPTypeInfo<Vd>::kNegDenorm;
       if (lmul_index == 4) {
-        *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kPosInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kNegInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kPosZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kNegZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kPosDenorm;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kNegDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kPosInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kNegInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kPosZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kNegZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kPosDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kNegDenorm;
       } else if (lmul_index == 5) {
-        *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kQNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kSNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kPosDenorm;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kNegDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kQNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kSNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kPosDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kNegDenorm;
       } else if (lmul_index == 6) {
-        *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosInf;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosZero;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kNegDenorm;
-        *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kPosDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosInf;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosZero;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kNegDenorm;
+        *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kPosDenorm;
       }
       // Modify the first mask bits to use each of the special floating point
       // values.
@@ -260,23 +260,23 @@
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
                 auto int_reg_val =
-                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                         &reg_val);
                 auto int_vd_val =
-                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                         &vd_value[count]);
                 if ((count >= vstart) && mask_value && (count < num_values)) {
                   ScopedFPStatus set_fpstatus(rv_fp_->host_fp_interface());
                   auto op_val = operation(vs2_value[count], vs1_value[count],
                                           vd_value[count]);
                   auto int_op_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                           &op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                           &vs2_value[count]);
                   auto int_vs1_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType*>(
                           &vs1_value[count]);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
@@ -312,7 +312,7 @@
   // scalar instructions.
   template <typename Vd, typename Vs2, typename Fs1>
   void TernaryOpFPTestHelperVX(absl::string_view name, int sew,
-                               Instruction *inst, int delta_position,
+                               Instruction* inst, int delta_position,
                                std::function<Vd(Vs2, Fs1, Vd)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -343,22 +343,22 @@
       using VdInt = typename FPTypeInfo<Vd>::IntType;
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
-      *reinterpret_cast<VdInt *>(&vd_span[0]) = FPTypeInfo<Vd>::kQNaN;
-      *reinterpret_cast<VdInt *>(&vd_span[1]) = FPTypeInfo<Vd>::kSNaN;
-      *reinterpret_cast<VdInt *>(&vd_span[2]) = FPTypeInfo<Vd>::kPosInf;
-      *reinterpret_cast<VdInt *>(&vd_span[3]) = FPTypeInfo<Vd>::kNegInf;
-      *reinterpret_cast<VdInt *>(&vd_span[4]) = FPTypeInfo<Vd>::kPosZero;
-      *reinterpret_cast<VdInt *>(&vd_span[5]) = FPTypeInfo<Vd>::kNegZero;
-      *reinterpret_cast<VdInt *>(&vd_span[6]) = FPTypeInfo<Vd>::kPosDenorm;
-      *reinterpret_cast<VdInt *>(&vd_span[7]) = FPTypeInfo<Vd>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<VdInt*>(&vd_span[0]) = FPTypeInfo<Vd>::kQNaN;
+      *reinterpret_cast<VdInt*>(&vd_span[1]) = FPTypeInfo<Vd>::kSNaN;
+      *reinterpret_cast<VdInt*>(&vd_span[2]) = FPTypeInfo<Vd>::kPosInf;
+      *reinterpret_cast<VdInt*>(&vd_span[3]) = FPTypeInfo<Vd>::kNegInf;
+      *reinterpret_cast<VdInt*>(&vd_span[4]) = FPTypeInfo<Vd>::kPosZero;
+      *reinterpret_cast<VdInt*>(&vd_span[5]) = FPTypeInfo<Vd>::kNegZero;
+      *reinterpret_cast<VdInt*>(&vd_span[6]) = FPTypeInfo<Vd>::kPosDenorm;
+      *reinterpret_cast<VdInt*>(&vd_span[7]) = FPTypeInfo<Vd>::kNegDenorm;
       // Modify the first mask bits to use each of the special floating point
       // values.
       vreg_[kVmask]->data_buffer()->Set<uint8_t>(0, 0xff);
@@ -383,7 +383,7 @@
         // Try different vector lengths (updated at the bottom of the loop).
         for (int vlen_count = 0; vlen_count < 4; vlen_count++) {
           // Clear vd_span.
-          for (auto &vd_val : vd_span) vd_val = 0;
+          for (auto& vd_val : vd_span) vd_val = 0;
           ASSERT_TRUE(vlen > vstart);
           int num_values = std::min(num_reg_values, vlen);
           ConfigureVectorUnit(vtype, vlen);
@@ -448,10 +448,10 @@
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
                 auto int_reg_val =
-                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                         &reg_val);
                 auto int_vd_val =
-                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                         &vd_value[count]);
                 if ((count >= vstart) && mask_value && (count < num_values)) {
                   // Set rounding mode and perform the computation.
@@ -461,13 +461,13 @@
                       operation(vs2_value[count], fs1_value, vd_value[count]);
                   // Extract the integer view of the fp values.
                   auto int_op_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                           &op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                           &vs2_value[count]);
                   auto int_fs1_val =
-                      *reinterpret_cast<typename FPTypeInfo<Fs1>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Fs1>::IntType*>(
                           &fs1_value);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
@@ -1116,10 +1116,10 @@
         sign_op) {
   using Int = typename FPTypeInfo<T>::IntType;
   Int sign_mask = 1ULL << (FPTypeInfo<T>::kBitSize - 1);
-  Int vs2i = *reinterpret_cast<Int *>(&vs2);
-  Int vs1i = *reinterpret_cast<Int *>(&vs1);
+  Int vs2i = *reinterpret_cast<Int*>(&vs2);
+  Int vs1i = *reinterpret_cast<Int*>(&vs1);
   Int resi = sign_op(vs2i, vs1i, sign_mask);
-  return *reinterpret_cast<T *>(&resi);
+  return *reinterpret_cast<T*>(&resi);
 }
 
 // The sign is that of vs1.
@@ -1260,7 +1260,7 @@
 template <typename T>
 bool is_snan(T value) {
   using IntType = typename FPTypeInfo<T>::IntType;
-  IntType int_value = *reinterpret_cast<IntType *>(&value);
+  IntType int_value = *reinterpret_cast<IntType*>(&value);
   bool signal = (int_value & (1ULL << (FPTypeInfo<T>::kSigSize - 1))) == 0;
   return std::isnan(value) && signal;
 }
@@ -1275,7 +1275,7 @@
   if (std::isnan(vs2) && std::isnan(vs1)) {
     // Canonical NaN.
     auto canonical = FPTypeInfo<T>::kCanonicalNaN;
-    T canonical_fp = *reinterpret_cast<T *>(&canonical);
+    T canonical_fp = *reinterpret_cast<T*>(&canonical);
     return std::tie(canonical_fp, flag);
   }
   if (std::isnan(vs2)) return std::tie(vs1, flag);
diff --git a/riscv/test/riscv_vector_fp_reduction_instructions_test.cc b/riscv/test/riscv_vector_fp_reduction_instructions_test.cc
index d0fec04..bd7535e 100644
--- a/riscv/test/riscv_vector_fp_reduction_instructions_test.cc
+++ b/riscv/test/riscv_vector_fp_reduction_instructions_test.cc
@@ -15,21 +15,20 @@
 #include "riscv/riscv_vector_fp_reduction_instructions.h"
 
 #include <algorithm>
-#include <cstring>
-#include <ios>
-#include <limits>
-#include <string>
-#include <type_traits>
+#include <cstdint>
+#include <functional>
 #include <vector>
 
 #include "absl/random/random.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
 #include "absl/types/span.h"
 #include "googlemock/include/gmock/gmock.h"
 #include "mpact/sim/generic/instruction.h"
+#include "riscv/riscv_fp_host.h"
+#include "riscv/riscv_fp_info.h"
 #include "riscv/riscv_fp_state.h"
 #include "riscv/riscv_register.h"
-#include "riscv/riscv_vector_state.h"
 #include "riscv/test/riscv_vector_fp_test_utilities.h"
 #include "riscv/test/riscv_vector_instructions_test_base.h"
 
@@ -69,7 +68,7 @@
   // Helper function for floating point reduction operations.
   template <typename Vd, typename Vs2, typename Vs1>
   void ReductionOpFPTestHelper(absl::string_view name, int sew,
-                               Instruction *inst, int delta_position,
+                               Instruction* inst, int delta_position,
                                std::function<Vd(Vs1, Vs2)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -195,8 +194,8 @@
 template <typename T>
 T MaxMinHelper(T vs2, T vs1, std::function<T(T, T)> operation) {
   using UInt = typename FPTypeInfo<T>::IntType;
-  UInt vs2_uint = *reinterpret_cast<UInt *>(&vs2);
-  UInt vs1_uint = *reinterpret_cast<UInt *>(&vs1);
+  UInt vs2_uint = *reinterpret_cast<UInt*>(&vs2);
+  UInt vs1_uint = *reinterpret_cast<UInt*>(&vs1);
   UInt mask = 1ULL << (FPTypeInfo<T>::kSigSize - 1);
   bool nan_vs2 = std::isnan(vs2);
   bool nan_vs1 = std::isnan(vs1);
@@ -205,7 +204,7 @@
     // Canonical NaN.
     UInt canonical = ((1ULL << (FPTypeInfo<T>::kExpSize + 1)) - 1)
                      << (FPTypeInfo<T>::kSigSize - 1);
-    T canonical_fp = *reinterpret_cast<T *>(&canonical);
+    T canonical_fp = *reinterpret_cast<T*>(&canonical);
     return canonical_fp;
   }
   if (nan_vs2) return vs1;
diff --git a/riscv/test/riscv_vector_fp_test_utilities.h b/riscv/test/riscv_vector_fp_test_utilities.h
index 9ed5ff4..b291c94 100644
--- a/riscv/test/riscv_vector_fp_test_utilities.h
+++ b/riscv/test/riscv_vector_fp_test_utilities.h
@@ -120,12 +120,12 @@
     if (exp > delta_position) {
       exp -= delta_position;
       UInt udelta = exp << FPTypeInfo<T>::kSigSize;
-      delta = *reinterpret_cast<T *>(&udelta);
+      delta = *reinterpret_cast<T*>(&udelta);
     } else {
       // Becomes a denormal
       int diff = delta_position - exp;
       UInt udelta = 1ULL << (FPTypeInfo<T>::kSigSize - 1 - diff);
-      delta = *reinterpret_cast<T *>(&udelta);
+      delta = *reinterpret_cast<T*>(&udelta);
     }
     EXPECT_THAT(reg, testing::NanSensitiveFloatNear(op, delta)) << str;
   } else {
@@ -145,12 +145,12 @@
     if (exp > delta_position) {
       exp -= delta_position;
       UInt udelta = exp << FPTypeInfo<T>::kSigSize;
-      delta = *reinterpret_cast<T *>(&udelta);
+      delta = *reinterpret_cast<T*>(&udelta);
     } else {
       // Becomes a denormal
       int diff = delta_position - exp;
       UInt udelta = 1ULL << (FPTypeInfo<T>::kSigSize - 1 - diff);
-      delta = *reinterpret_cast<T *>(&udelta);
+      delta = *reinterpret_cast<T*>(&udelta);
     }
     EXPECT_THAT(reg, testing::NanSensitiveDoubleNear(op, delta)) << str;
   } else {
@@ -179,7 +179,7 @@
 struct GreaterSize {
   static const bool value =
       sizeof(S) > sizeof(D) &&
-      std::is_floating_point<S>::value &&std::is_integral<D>::value;
+      std::is_floating_point<S>::value&& std::is_integral<D>::value;
 };
 
 template <typename S, typename D>
@@ -204,16 +204,16 @@
 inline typename std::enable_if<internal::LessSize<S, D>::value, D>::type NaNBox(
     S value) {
   using SInt = typename FPTypeInfo<S>::IntType;
-  SInt sval = *reinterpret_cast<SInt *>(&value);
+  SInt sval = *reinterpret_cast<SInt*>(&value);
   D dval = (~static_cast<D>(0) << (sizeof(S) * 8)) | sval;
-  return *reinterpret_cast<D *>(&dval);
+  return *reinterpret_cast<D*>(&dval);
 }
 
 // This version does a straight copy - as the data types are the same size.
 template <typename S, typename D>
 inline typename std::enable_if<internal::EqualSize<S, D>::value, D>::type
 NaNBox(S value) {
-  return *reinterpret_cast<D *>(&value);
+  return *reinterpret_cast<D*>(&value);
 }
 
 // Signal error if the register is smaller than the floating point value.
@@ -248,14 +248,14 @@
                              1ULL << FPTypeInfo<T>::kSigSize);
     UInt value = (sign & 1) << (FPTypeInfo<T>::kBitSize - 1) |
                  (exp << FPTypeInfo<T>::kSigSize) | sig;
-    T val = *reinterpret_cast<T *>(&value);
+    T val = *reinterpret_cast<T*>(&value);
     return val;
   }
 
   // This method uses random values for each field in the fp number.
   template <typename T>
   void FillArrayWithRandomFPValues(absl::Span<T> span) {
-    for (auto &val : span) {
+    for (auto& val : span) {
       val = RandomFPValue<T>();
     }
   }
@@ -270,41 +270,41 @@
     using Vs1Int = typename FPTypeInfo<Vs1>::IntType;
     // Overwrite the first few values of the input data with infinities,
     // zeros, denormals and NaNs.
-    *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-    *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+    *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
     if (count == 4) {
-      *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kPosInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kNegInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kPosZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kNegZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kPosDenorm;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kNegDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kPosInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kNegInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kPosZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kNegZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kPosDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kNegDenorm;
     } else if (count == 5) {
-      *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kQNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kSNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kPosDenorm;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kNegDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kQNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kSNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kPosDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kNegDenorm;
     } else if (count == 6) {
-      *reinterpret_cast<Vs1Int *>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosInf;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosZero;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[6]) = FPTypeInfo<Vs1>::kNegDenorm;
-      *reinterpret_cast<Vs1Int *>(&vs1_span[7]) = FPTypeInfo<Vs1>::kPosDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[0]) = FPTypeInfo<Vs1>::kQNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[1]) = FPTypeInfo<Vs1>::kSNaN;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[2]) = FPTypeInfo<Vs1>::kNegInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[3]) = FPTypeInfo<Vs1>::kPosInf;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[4]) = FPTypeInfo<Vs1>::kNegZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[5]) = FPTypeInfo<Vs1>::kPosZero;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[6]) = FPTypeInfo<Vs1>::kNegDenorm;
+      *reinterpret_cast<Vs1Int*>(&vs1_span[7]) = FPTypeInfo<Vs1>::kPosDenorm;
     }
     // Modify the first mask bits to use each of the special floating
     // point values.
@@ -315,7 +315,7 @@
   // NaN etc.) during testing, not just random values.
   template <typename Vd, typename Vs2, typename Vs1>
   void BinaryOpFPTestHelperVV(absl::string_view name, int sew,
-                              Instruction *inst, int delta_position,
+                              Instruction* inst, int delta_position,
                               std::function<Vd(Vs2, Vs1)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -410,19 +410,19 @@
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
                 auto int_reg_val =
-                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                    *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                         &reg_val);
                 if ((count >= vstart) && mask_value && (count < num_values)) {
                   ScopedFPStatus set_fpstatus(rv_fp_->host_fp_interface());
                   auto op_val = operation(vs2_value[count], vs1_value[count]);
                   auto int_op_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                           &op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                           &vs2_value[count]);
                   auto int_vs1_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs1>::IntType*>(
                           &vs1_value[count]);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
@@ -456,7 +456,7 @@
   // NaN etc.) during testing, not just random values.
   template <typename Vd, typename Vs2, typename Vs1>
   void BinaryOpWithFflagsFPTestHelperVV(
-      absl::string_view name, int sew, Instruction *inst, int delta_position,
+      absl::string_view name, int sew, Instruction* inst, int delta_position,
       std::function<std::tuple<Vd, uint32_t>(Vs2, Vs1)> operation) {
     using VdInt = typename FPTypeInfo<Vd>::IntType;
     using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
@@ -478,7 +478,7 @@
     auto vs2_span = Span<Vs2>(vs2_value);
     auto vs1_span = Span<Vs1>(vs1_value);
     AppendVectorRegisterOperands({kVs2, kVs1, kVmask}, {kVd});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     SetVectorRegisterValues<uint8_t>(
         {{kVmaskName, Span<const uint8_t>(kA5Mask)}});
@@ -558,7 +558,7 @@
                       ((kA5Mask[mask_index] >> mask_offset) & 0b1) != 0;
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
-                auto int_reg_val = *reinterpret_cast<VdInt *>(&reg_val);
+                auto int_reg_val = *reinterpret_cast<VdInt*>(&reg_val);
                 if ((count >= vstart) && mask_value && (count < num_values)) {
                   Vd op_val;
                   uint32_t flag;
@@ -569,11 +569,11 @@
                     op_val = op_val_tmp;
                     flag = flag_tmp;
                   }
-                  auto int_op_val = *reinterpret_cast<VdInt *>(&op_val);
+                  auto int_op_val = *reinterpret_cast<VdInt*>(&op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<Vs2Int *>(&vs2_value[count]);
+                      *reinterpret_cast<Vs2Int*>(&vs2_value[count]);
                   auto int_vs1_val =
-                      *reinterpret_cast<Vs1Int *>(&vs1_value[count]);
+                      *reinterpret_cast<Vs1Int*>(&vs1_value[count]);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
                       absl::StrCat(name, "[", count, "] op(", vs2_value[count],
@@ -609,7 +609,7 @@
   // NaN etc.) during testing, not just random values.
   template <typename Vd, typename Vs2, typename Fs1, typename ScalarReg>
   void BinaryOpWithFflagsFPTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst, int delta_position,
+      absl::string_view name, int sew, Instruction* inst, int delta_position,
       std::function<std::tuple<Vd, uint32_t>(Vs2, Fs1)> operation) {
     using VdInt = typename FPTypeInfo<Vd>::IntType;
     using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
@@ -629,7 +629,7 @@
     auto vs2_span = Span<Vs2>(vs2_value);
     AppendVectorRegisterOperands({kVs2}, {kVd});
     AppendRegisterOperands<ScalarReg>({kFs1Name}, {});
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     AppendVectorRegisterOperands({kVmask}, {});
     SetVectorRegisterValues<uint8_t>(
@@ -640,14 +640,14 @@
       FillArrayWithRandomFPValues<Vs2>(vs2_span);
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
       // Modify the first mask bits to use each of the special floating
       // point values.
       vreg_[kVmask]->data_buffer()->Set<uint8_t>(0, 0xff);
@@ -728,7 +728,7 @@
                       ((kA5Mask[mask_index] >> mask_offset) & 0b1) != 0;
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
-                auto int_reg_val = *reinterpret_cast<VdInt *>(&reg_val);
+                auto int_reg_val = *reinterpret_cast<VdInt*>(&reg_val);
                 if ((count >= vstart) && mask_value && (count < num_values)) {
                   Vd op_val;
                   uint32_t flag;
@@ -739,10 +739,10 @@
                     op_val = op_val_tmp;
                     flag = flag_tmp;
                   }
-                  auto int_op_val = *reinterpret_cast<VdInt *>(&op_val);
+                  auto int_op_val = *reinterpret_cast<VdInt*>(&op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<Vs2Int *>(&vs2_value[count]);
-                  auto int_fs1_val = *reinterpret_cast<Fs1Int *>(&fs1_value);
+                      *reinterpret_cast<Vs2Int*>(&vs2_value[count]);
+                  auto int_fs1_val = *reinterpret_cast<Fs1Int*>(&fs1_value);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
                       absl::StrCat(name, "[", count, "] op(", vs2_value[count],
@@ -778,7 +778,7 @@
   // vector scalar instructions.
   template <typename Vd, typename Vs2, typename Fs1, typename ScalarReg>
   void BinaryOpFPWithMaskTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst, int delta_position,
+      absl::string_view name, int sew, Instruction* inst, int delta_position,
       std::function<Vd(Vs2, Fs1, bool)> operation) {
     using VdInt = typename FPTypeInfo<Vd>::IntType;
     using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
@@ -807,14 +807,14 @@
       FillArrayWithRandomFPValues<Vs2>(vs2_span);
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
       // Modify the first mask bits to use each of the special floating
       // point values.
       vreg_[kVmask]->data_buffer()->Set<uint8_t>(0, 0xff);
@@ -892,15 +892,15 @@
                       ((kA5Mask[mask_index] >> mask_offset) & 0b1) != 0;
                 }
                 auto reg_val = vreg_[reg]->data_buffer()->Get<Vd>(i);
-                auto int_reg_val = *reinterpret_cast<VdInt *>(&reg_val);
+                auto int_reg_val = *reinterpret_cast<VdInt*>(&reg_val);
                 if ((count >= vstart) && (count < num_values)) {
                   ScopedFPStatus set_fpstatus(rv_fp_->host_fp_interface());
                   auto op_val =
                       operation(vs2_value[count], fs1_value, mask_value);
-                  auto int_op_val = *reinterpret_cast<VdInt *>(&op_val);
+                  auto int_op_val = *reinterpret_cast<VdInt*>(&op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<Vs2Int *>(&vs2_value[count]);
-                  auto int_fs1_val = *reinterpret_cast<Fs1Int *>(&fs1_value);
+                      *reinterpret_cast<Vs2Int*>(&vs2_value[count]);
+                  auto int_fs1_val = *reinterpret_cast<Fs1Int*>(&fs1_value);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
                       absl::StrCat(name, "[", count, "] op(", vs2_value[count],
@@ -932,7 +932,7 @@
   // not use the value of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1, typename ScalarReg>
   void BinaryOpFPTestHelperVX(absl::string_view name, int sew,
-                              Instruction *inst, int delta_position,
+                              Instruction* inst, int delta_position,
                               std::function<Vd(Vs2, Vs1)> operation) {
     BinaryOpFPWithMaskTestHelperVX<Vd, Vs2, Vs1, ScalarReg>(
         name, sew, inst, delta_position,
@@ -945,7 +945,7 @@
   }
 
  protected:
-  mpact::sim::riscv::RiscVFPState *rv_fp_;
+  mpact::sim::riscv::RiscVFPState* rv_fp_;
 };
 
 }  // namespace test
diff --git a/riscv/test/riscv_vector_fp_unary_instructions_test.cc b/riscv/test/riscv_vector_fp_unary_instructions_test.cc
index e3ee470..1c5b142 100644
--- a/riscv/test/riscv_vector_fp_unary_instructions_test.cc
+++ b/riscv/test/riscv_vector_fp_unary_instructions_test.cc
@@ -116,7 +116,7 @@
   template <typename T>
   void FillArrayWithRandomFPValues(absl::Span<T> span) {
     using UInt = typename FPTypeInfo<T>::IntType;
-    for (auto &val : span) {
+    for (auto& val : span) {
       UInt sign = absl::Uniform(absl::IntervalClosed, bitgen_, 0ULL, 1ULL);
       UInt exp = absl::Uniform(absl::IntervalClosedOpen, bitgen_, 0ULL,
                                1ULL << FPTypeInfo<T>::kExpSize);
@@ -124,14 +124,14 @@
                                1ULL << FPTypeInfo<T>::kSigSize);
       UInt value = (sign & 1) << (FPTypeInfo<T>::kBitSize - 1) |
                    (exp << FPTypeInfo<T>::kSigSize) | sig;
-      val = *reinterpret_cast<T *>(&value);
+      val = *reinterpret_cast<T*>(&value);
     }
   }
 
   // Floating point test needs to ensure to use the fp special values (inf, NaN
   // etc.) during testing, not just random values.
   template <typename Vd, typename Vs2>
-  void UnaryOpFPTestHelperV(absl::string_view name, int sew, Instruction *inst,
+  void UnaryOpFPTestHelperV(absl::string_view name, int sew, Instruction* inst,
                             int delta_position,
                             std::function<Vd(Vs2)> operation) {
     int byte_sew = sew / 8;
@@ -156,17 +156,17 @@
       using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[8]) = 0x0119515e;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[9]) = 0x0007fea3;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[10]) = 0x800bc58f;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[8]) = 0x0119515e;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[9]) = 0x0007fea3;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[10]) = 0x800bc58f;
       // Modify the first mask bits to use each of the special floating point
       // values.
       vreg_[kVmask]->data_buffer()->Set<uint8_t>(0, 0xff);
@@ -233,13 +233,13 @@
                   auto op_val = operation(vs2_value[count]);
                   // Do separate comparison if the result is a NaN.
                   auto int_reg_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                           &reg_val);
                   auto int_op_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vd>::IntType*>(
                           &op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType *>(
+                      *reinterpret_cast<typename FPTypeInfo<Vs2>::IntType*>(
                           &vs2_value[count]);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
@@ -273,7 +273,7 @@
   // etc.) during testing, not just random values.
   template <typename Vd, typename Vs2>
   void UnaryOpWithFflagsFPTestHelperV(
-      absl::string_view name, int sew, Instruction *inst, int delta_position,
+      absl::string_view name, int sew, Instruction* inst, int delta_position,
       std::function<std::tuple<Vd, uint32_t>(Vs2)> operation) {
     using VdInt = typename FPTypeInfo<Vd>::IntType;
     using Vs2Int = typename FPTypeInfo<Vs2>::IntType;
@@ -290,7 +290,7 @@
     Vs2 vs2_value[vs2_size * 8];
     auto vs2_span = Span<Vs2>(vs2_value);
     AppendVectorRegisterOperands({kVs2, kVmask}, {kVd});
-    auto *op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(op);
     SetVectorRegisterValues<uint8_t>(
         {{kVmaskName, Span<const uint8_t>(kA5Mask)}});
@@ -300,17 +300,17 @@
       FillArrayWithRandomFPValues<Vs2>(vs2_span);
       // Overwrite the first few values of the input data with infinities,
       // zeros, denormals and NaNs.
-      *reinterpret_cast<Vs2Int *>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[8]) = 0x0119515e;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[9]) = 0x0007fea3;
-      *reinterpret_cast<Vs2Int *>(&vs2_span[10]) = 0x800bc58f;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[0]) = FPTypeInfo<Vs2>::kQNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[1]) = FPTypeInfo<Vs2>::kSNaN;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[2]) = FPTypeInfo<Vs2>::kPosInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[3]) = FPTypeInfo<Vs2>::kNegInf;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[4]) = FPTypeInfo<Vs2>::kPosZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[5]) = FPTypeInfo<Vs2>::kNegZero;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[6]) = FPTypeInfo<Vs2>::kPosDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[7]) = FPTypeInfo<Vs2>::kNegDenorm;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[8]) = 0x0119515e;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[9]) = 0x0007fea3;
+      *reinterpret_cast<Vs2Int*>(&vs2_span[10]) = 0x800bc58f;
       // Modify the first mask bits to use each of the special floating point
       // values.
       vreg_[kVmask]->data_buffer()->Set<uint8_t>(0, 0xff);
@@ -393,10 +393,10 @@
                   }
                   fflags_test |= (rv_fp_->fflags()->AsUint32() | flag);
                   // Do separate comparison if the result is a NaN.
-                  auto int_reg_val = *reinterpret_cast<VdInt *>(&reg_val);
-                  auto int_op_val = *reinterpret_cast<VdInt *>(&op_val);
+                  auto int_reg_val = *reinterpret_cast<VdInt*>(&reg_val);
+                  auto int_op_val = *reinterpret_cast<VdInt*>(&op_val);
                   auto int_vs2_val =
-                      *reinterpret_cast<Vs2Int *>(&vs2_value[count]);
+                      *reinterpret_cast<Vs2Int*>(&vs2_value[count]);
                   FPCompare<Vd>(
                       op_val, reg_val, delta_position,
                       absl::StrCat(name, "[", count, "] op(", vs2_value[count],
@@ -427,8 +427,8 @@
   }
 
  protected:
-  mpact::sim::riscv::RiscVFPState *rv_fp_ = nullptr;
-  RiscVCsrInterface *fflags_ = nullptr;
+  mpact::sim::riscv::RiscVFPState* rv_fp_ = nullptr;
+  RiscVCsrInterface* fflags_ = nullptr;
 };
 
 // Templated helper function for classifying fp numbers.
@@ -439,8 +439,7 @@
     case FP_INFINITE:
       return std::signbit(val) ? 1 : 1 << 7;
     case FP_NAN: {
-      auto uint_val =
-          *reinterpret_cast<typename FPTypeInfo<T>::IntType *>(&val);
+      auto uint_val = *reinterpret_cast<typename FPTypeInfo<T>::IntType*>(&val);
       bool quiet_nan = (uint_val >> (FPTypeInfo<T>::kSigSize - 1)) & 1;
       return quiet_nan ? 1 << 9 : 1 << 8;
     }
@@ -495,7 +494,7 @@
 
 // Helper function for fp to integer conversions.
 template <typename F, typename I>
-std::tuple<I, uint32_t> ConvertHelper(F value, RiscVFPState *fp_state) {
+std::tuple<I, uint32_t> ConvertHelper(F value, RiscVFPState* fp_state) {
   constexpr F kMin = static_cast<F>(std::numeric_limits<I>::min());
   constexpr F kMax = static_cast<F>(std::numeric_limits<I>::max());
   ScopedFPStatus status(fp_state->host_fp_interface());
@@ -715,15 +714,15 @@
         }
         using UIntD = typename FPTypeInfo<double>::IntType;
         using UIntF = typename FPTypeInfo<float>::IntType;
-        UIntD uval = *reinterpret_cast<UIntD *>(&vs2);
+        UIntD uval = *reinterpret_cast<UIntD*>(&vs2);
         int diff = FPTypeInfo<double>::kSigSize - FPTypeInfo<float>::kSigSize;
         UIntF bit = (uval & (FPTypeInfo<double>::kSigMask >> diff)) != 0;
         float res = static_cast<float>(vs2);
         // The narrowing conversion may have generated an infinity, so check
         // for infinity before doing rounding.
         if (std::isinf(res)) return res;
-        UIntF ures = *reinterpret_cast<UIntF *>(&res) | bit;
-        return *reinterpret_cast<float *>(&ures);
+        UIntF ures = *reinterpret_cast<UIntF*>(&res) | bit;
+        return *reinterpret_cast<float*>(&ures);
       });
 }
 
@@ -801,11 +800,11 @@
 
 // Helper function for testing approximate reciprocal instruction.
 template <typename T>
-inline T Vrecip7vTestHelper(T vs2, RiscVFPState *rv_fp) {
+inline T Vrecip7vTestHelper(T vs2, RiscVFPState* rv_fp) {
   using UInt = typename FPTypeInfo<T>::IntType;
   if (FPTypeInfo<T>::IsNaN(vs2)) {
     auto nan_value = FPTypeInfo<T>::kCanonicalNaN;
-    return *reinterpret_cast<T *>(&nan_value);
+    return *reinterpret_cast<T*>(&nan_value);
   }
   if (std::isinf(vs2)) {
     return std::signbit(vs2) ? -0.0 : 0.0;
@@ -813,9 +812,9 @@
   if (vs2 == 0.0) {
     UInt value =
         std::signbit(vs2) ? FPTypeInfo<T>::kNegInf : FPTypeInfo<T>::kPosInf;
-    return *reinterpret_cast<T *>(&value);
+    return *reinterpret_cast<T*>(&value);
   }
-  UInt uint_vs2 = *reinterpret_cast<UInt *>(&vs2);
+  UInt uint_vs2 = *reinterpret_cast<UInt*>(&vs2);
   auto exp = (uint_vs2 & FPTypeInfo<T>::kExpMask) >> FPTypeInfo<T>::kSigSize;
   auto sig2 =
       (uint_vs2 & FPTypeInfo<T>::kSigMask) >> (FPTypeInfo<T>::kSigSize - 2);
@@ -827,7 +826,7 @@
         return std::numeric_limits<T>::lowest();
       } else {
         UInt value = FPTypeInfo<T>::kNegInf;
-        return *reinterpret_cast<T *>(&value);
+        return *reinterpret_cast<T*>(&value);
       }
     } else {
       if ((rm == FPRoundingMode::kRoundTowardsZero) ||
@@ -835,17 +834,17 @@
         return std::numeric_limits<T>::max();
       } else {
         UInt value = FPTypeInfo<T>::kPosInf;
-        return *reinterpret_cast<T *>(&value);
+        return *reinterpret_cast<T*>(&value);
       }
     }
   }
   ScopedFPStatus status(rv_fp->host_fp_interface(),
                         FPRoundingMode::kRoundTowardsZero);
   T value = 1.0 / vs2;
-  UInt uint_val = *reinterpret_cast<UInt *>(&value);
+  UInt uint_val = *reinterpret_cast<UInt*>(&value);
   UInt mask = FPTypeInfo<T>::kSigMask >> 7;
   uint_val = uint_val & ~mask;
-  return *reinterpret_cast<T *>(&uint_val);
+  return *reinterpret_cast<T*>(&uint_val);
 }
 
 // Test approximate reciprocal instruction.
@@ -860,18 +859,18 @@
 
 // Helper function for testing approximate reciprocal square root instruction.
 template <typename T>
-inline std::tuple<T, uint32_t> Vfrsqrt7vTestHelper(T vs2, RiscVFPState *rv_fp) {
+inline std::tuple<T, uint32_t> Vfrsqrt7vTestHelper(T vs2, RiscVFPState* rv_fp) {
   using UInt = typename FPTypeInfo<T>::IntType;
   T return_value;
   uint32_t fflags = 0;
   if (FPTypeInfo<T>::IsNaN(vs2) || (vs2 < 0.0)) {
     auto nan_value = FPTypeInfo<T>::kCanonicalNaN;
-    return_value = *reinterpret_cast<T *>(&nan_value);
+    return_value = *reinterpret_cast<T*>(&nan_value);
     fflags = static_cast<uint32_t>(FPExceptions::kInvalidOp);
   } else if (vs2 == 0.0) {
     UInt value =
         std::signbit(vs2) ? FPTypeInfo<T>::kNegInf : FPTypeInfo<T>::kPosInf;
-    return_value = *reinterpret_cast<T *>(&value);
+    return_value = *reinterpret_cast<T*>(&value);
     fflags = static_cast<uint32_t>(FPExceptions::kDivByZero);
   } else if (std::isinf(vs2)) {
     return_value = 0.0;
@@ -880,10 +879,10 @@
     ScopedFPStatus status(rv_fp->host_fp_interface(),
                           FPRoundingMode::kRoundTowardsZero);
     T value = 1.0 / sqrt(vs2);
-    UInt uint_val = *reinterpret_cast<UInt *>(&value);
+    UInt uint_val = *reinterpret_cast<UInt*>(&value);
     UInt mask = FPTypeInfo<T>::kSigMask >> 7;
     uint_val = uint_val & ~mask;
-    return_value = *reinterpret_cast<T *>(&uint_val);
+    return_value = *reinterpret_cast<T*>(&uint_val);
   }
   return std::make_tuple(return_value, fflags);
 }
@@ -911,7 +910,7 @@
   if (vs2 == 0.0) return std::make_tuple(vs2, 0);
   if (std::isnan(vs2) || (vs2 < 0.0)) {
     auto val = FPTypeInfo<T>::kCanonicalNaN;
-    return std::make_tuple(*reinterpret_cast<const T *>(&val),
+    return std::make_tuple(*reinterpret_cast<const T*>(&val),
                            (uint32_t)FPExceptions::kInvalidOp);
   }
   T res = sqrt(vs2);
diff --git a/riscv/test/riscv_vector_instructions_test_base.h b/riscv/test/riscv_vector_instructions_test_base.h
index bc0892a..ca6bd7f 100644
--- a/riscv/test/riscv_vector_instructions_test_base.h
+++ b/riscv/test/riscv_vector_instructions_test_base.h
@@ -126,7 +126,7 @@
     child_instruction_ = new Instruction(kInstAddress, state_);
     child_instruction_->set_size(4);
     // Initialize a portion of memory with a known pattern.
-    auto *db = state_->db_factory()->Allocate(8192);
+    auto* db = state_->db_factory()->Allocate(8192);
     auto span = db->Get<uint8_t>();
     for (int i = 0; i < 8192; i++) {
       span[i] = i & 0xff;
@@ -163,10 +163,10 @@
   // Creates immediate operands with the values from the vector and appends them
   // to the given instruction.
   template <typename T>
-  void AppendImmediateOperands(Instruction *inst,
-                               const std::vector<T> &values) {
+  void AppendImmediateOperands(Instruction* inst,
+                               const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       inst->AppendSource(src);
     }
   }
@@ -174,22 +174,22 @@
   // Creates immediate operands with the values from the vector and appends them
   // to the default instruction.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     AppendImmediateOperands<T>(instruction_, values);
   }
 
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the given instruction.
   template <typename T>
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<T>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<T>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<T>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<T>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
@@ -197,25 +197,25 @@
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the default instruction.
   template <typename T>
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands<T>(instruction_, sources, destinations);
   }
 
   // Returns the value of the named vector register.
   template <typename T>
   T GetRegisterValue(absl::string_view vreg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(vreg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(vreg_name).first;
     return reg->data_buffer()->Get<T>();
   }
 
   // named register and sets it to the corresponding value.
   template <typename T, typename RegisterType = RV32Register>
   void SetRegisterValues(
-      const std::vector<tuple<std::string, const T>> &values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RegisterType>(reg_name).first;
-      auto *db =
+      const std::vector<tuple<std::string, const T>>& values) {
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RegisterType>(reg_name).first;
+      auto* db =
           state_->db_factory()->Allocate<typename RegisterType::ValueType>(1);
       db->template Set<T>(0, value);
       reg->SetDataBuffer(db);
@@ -225,43 +225,43 @@
 
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the given instruction.
-  void AppendVectorRegisterOperands(Instruction *inst,
-                                    const std::vector<int> &sources,
-                                    const std::vector<int> &destinations) {
-    for (auto &reg_no : sources) {
-      std::vector<RegisterBase *> reg_vec;
+  void AppendVectorRegisterOperands(Instruction* inst,
+                                    const std::vector<int>& sources,
+                                    const std::vector<int>& destinations) {
+    for (auto& reg_no : sources) {
+      std::vector<RegisterBase*> reg_vec;
       for (int i = 0; (i < 8) && (i + reg_no < 32); i++) {
         std::string reg_name = absl::StrCat("v", i + reg_no);
         reg_vec.push_back(
             state_->GetRegister<RVVectorRegister>(reg_name).first);
       }
-      auto *op = new RV32VectorSourceOperand(
-          absl::Span<RegisterBase *>(reg_vec), absl::StrCat("v", reg_no));
+      auto* op = new RV32VectorSourceOperand(absl::Span<RegisterBase*>(reg_vec),
+                                             absl::StrCat("v", reg_no));
       inst->AppendSource(op);
     }
-    for (auto &reg_no : destinations) {
-      std::vector<RegisterBase *> reg_vec;
+    for (auto& reg_no : destinations) {
+      std::vector<RegisterBase*> reg_vec;
       for (int i = 0; (i < 8) && (i + reg_no < 32); i++) {
         std::string reg_name = absl::StrCat("v", i + reg_no);
         reg_vec.push_back(
             state_->GetRegister<RVVectorRegister>(reg_name).first);
       }
-      auto *op = new RV32VectorDestinationOperand(
-          absl::Span<RegisterBase *>(reg_vec), 0, absl::StrCat("v", reg_no));
+      auto* op = new RV32VectorDestinationOperand(
+          absl::Span<RegisterBase*>(reg_vec), 0, absl::StrCat("v", reg_no));
       inst->AppendDestination(op);
     }
   }
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the default instruction.
-  void AppendVectorRegisterOperands(const std::vector<int> &sources,
-                                    const std::vector<int> &destinations) {
+  void AppendVectorRegisterOperands(const std::vector<int>& sources,
+                                    const std::vector<int>& destinations) {
     AppendVectorRegisterOperands(instruction_, sources, destinations);
   }
 
   // Returns the value of the named vector register.
   template <typename T>
   T GetVectorRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RVVectorRegister>(reg_name).first;
+    auto* reg = state_->GetRegister<RVVectorRegister>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
@@ -270,10 +270,10 @@
   // value.
   template <typename T>
   void SetVectorRegisterValues(
-      const std::vector<tuple<std::string, Span<const T>>> &values) {
-    for (auto &[vreg_name, span] : values) {
-      auto *vreg = state_->GetRegister<RVVectorRegister>(vreg_name).first;
-      auto *db = state_->db_factory()->MakeCopyOf(vreg->data_buffer());
+      const std::vector<tuple<std::string, Span<const T>>>& values) {
+    for (auto& [vreg_name, span] : values) {
+      auto* vreg = state_->GetRegister<RVVectorRegister>(vreg_name).first;
+      auto* db = state_->db_factory()->MakeCopyOf(vreg->data_buffer());
       db->template Set<T>(span);
       vreg->SetDataBuffer(db);
       db->DecRef();
@@ -281,7 +281,7 @@
   }
 
   // Initializes the semantic function of the instruction object.
-  void SetSemanticFunction(Instruction *inst,
+  void SetSemanticFunction(Instruction* inst,
                            Instruction::SemanticFunction fcn) {
     inst->set_semantic_function(fcn);
   }
@@ -301,7 +301,7 @@
 
   // Configure the vector unit according to the vtype and vlen values.
   void ConfigureVectorUnit(uint32_t vtype, uint32_t vlen) {
-    Instruction *inst = new Instruction(state_);
+    Instruction* inst = new Instruction(state_);
     AppendImmediateOperands<uint32_t>(inst, {vlen, vtype});
     SetSemanticFunction(inst, absl::bind_front(&Vsetvl, true, false));
     inst->Execute(nullptr);
@@ -326,14 +326,14 @@
   // Fill the span with random values.
   template <typename T>
   void FillArrayWithRandomValues(absl::Span<T> span) {
-    for (auto &val : span) {
+    for (auto& val : span) {
       val = RandomValue<T>();
     }
   }
 
   // Helper function for testing unary vector-vector instructions.
   template <typename Vd, typename Vs2>
-  void UnaryOpTestHelperV(absl::string_view name, int sew, Instruction *inst,
+  void UnaryOpTestHelperV(absl::string_view name, int sew, Instruction* inst,
                           std::function<Vd(Vs2)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2)) {
@@ -428,7 +428,7 @@
   // of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1>
   void BinaryOpWithMaskTestHelperVV(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<Vd(Vs2, Vs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -535,7 +535,7 @@
   // Helper function for testing vector-vector instructions that do not
   // use the value of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1>
-  void BinaryOpTestHelperVV(absl::string_view name, int sew, Instruction *inst,
+  void BinaryOpTestHelperVV(absl::string_view name, int sew, Instruction* inst,
                             std::function<Vd(Vs2, Vs1)> operation) {
     BinaryOpWithMaskTestHelperVV<Vd, Vs2, Vs1>(
         name, sew, inst, [operation](Vs2 vs2, Vs1 vs1, bool mask_value) -> Vd {
@@ -550,7 +550,7 @@
   // the value of the mask bit.
   template <typename Vd, typename Vs2, typename Rs1, typename ScalarReg>
   void BinaryOpWithMaskTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<Vd(Vs2, Rs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -664,7 +664,7 @@
   // Templated helper function that tests vector-scalar instructions that do
   // not use the value of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1, typename ScalarReg>
-  void BinaryOpTestHelperVX(absl::string_view name, int sew, Instruction *inst,
+  void BinaryOpTestHelperVX(absl::string_view name, int sew, Instruction* inst,
                             std::function<Vd(Vs2, Vs1)> operation) {
     BinaryOpWithMaskTestHelperVX<Vd, Vs2, Vs1, ScalarReg>(
         name, sew, inst, [operation](Vs2 vs2, Vs1 vs1, bool mask_value) -> Vd {
@@ -679,7 +679,7 @@
   // of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1>
   void TernaryOpWithMaskTestHelperVV(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<Vd(Vs2, Vs1, Vd, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -800,7 +800,7 @@
   // Helper function for testing vector-vector instructions that do not
   // use the value of the mask bit.
   template <typename Vd, typename Vs2, typename Vs1>
-  void TernaryOpTestHelperVV(absl::string_view name, int sew, Instruction *inst,
+  void TernaryOpTestHelperVV(absl::string_view name, int sew, Instruction* inst,
                              std::function<Vd(Vs2, Vs1, Vd)> operation) {
     TernaryOpWithMaskTestHelperVV<Vd, Vs2, Vs1>(
         name, sew, inst,
@@ -816,7 +816,7 @@
   // the value of the mask bit.
   template <typename Vd, typename Vs2, typename Rs1, typename ScalarReg>
   void TernaryOpWithMaskTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<Vd(Vs2, Rs1, Vd, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2) &&
@@ -946,7 +946,7 @@
   // Templated helper function that tests vector-scalar instructions that do
   // not use the value of the mask bit.
   template <typename Vd, typename Vs2, typename Rs1, typename ScalarReg>
-  void TernaryOpTestHelperVX(absl::string_view name, int sew, Instruction *inst,
+  void TernaryOpTestHelperVX(absl::string_view name, int sew, Instruction* inst,
                              std::function<Vd(Vs2, Rs1, Vd)> operation) {
     TernaryOpWithMaskTestHelperVX<Vd, Vs2, Rs1, ScalarReg>(
         name, sew, inst,
@@ -962,7 +962,7 @@
   // use the mask bit.
   template <typename Vs2, typename Vs1>
   void BinaryMaskOpWithMaskTestHelperVV(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<uint8_t(Vs2, Vs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vs2) && byte_sew != sizeof(Vs1)) {
@@ -1061,7 +1061,7 @@
   // not use the mask bit.
   template <typename Vs2, typename Vs1>
   void BinaryMaskOpTestHelperVV(absl::string_view name, int sew,
-                                Instruction *inst,
+                                Instruction* inst,
                                 std::function<uint8_t(Vs2, Vs1)> operation) {
     BinaryMaskOpWithMaskTestHelperVV<Vs2, Vs1>(
         name, sew, inst,
@@ -1077,7 +1077,7 @@
   // use the mask bit.
   template <typename Vs2, typename Rs1, typename ScalarReg>
   void BinaryMaskOpWithMaskTestHelperVX(
-      absl::string_view name, int sew, Instruction *inst,
+      absl::string_view name, int sew, Instruction* inst,
       std::function<uint8_t(Vs2, Rs1, bool)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vs2) && byte_sew != sizeof(Rs1)) {
@@ -1174,7 +1174,7 @@
   // use the mask bit.
   template <typename Vs2, typename Vs1, typename ScalarReg>
   void BinaryMaskOpTestHelperVX(absl::string_view name, int sew,
-                                Instruction *inst,
+                                Instruction* inst,
                                 std::function<uint8_t(Vs2, Vs1)> operation) {
     BinaryMaskOpWithMaskTestHelperVX<Vs2, Vs1, ScalarReg>(
         name, sew, inst,
@@ -1215,25 +1215,23 @@
     }
   }
 
-  RiscVVectorState *rv_vector() const { return rv_vector_; }
-  absl::Span<RVVectorRegister *> vreg() {
-    return absl::Span<RVVectorRegister *>(vreg_);
+  RiscVVectorState* rv_vector() const { return rv_vector_; }
+  absl::Span<RVVectorRegister*> vreg() {
+    return absl::Span<RVVectorRegister*>(vreg_);
   }
-  absl::Span<RV32Register *> xreg() {
-    return absl::Span<RV32Register *>(xreg_);
-  }
-  absl::BitGen &bitgen() { return bitgen_; }
-  Instruction *instruction() { return instruction_; }
+  absl::Span<RV32Register*> xreg() { return absl::Span<RV32Register*>(xreg_); }
+  absl::BitGen& bitgen() { return bitgen_; }
+  Instruction* instruction() { return instruction_; }
 
  protected:
-  RV32Register *xreg_[32];
-  RVVectorRegister *vreg_[32];
-  RVFpRegister *freg_[32];
-  RiscVState *state_;
-  Instruction *instruction_;
-  Instruction *child_instruction_;
-  FlatDemandMemory *memory_;
-  RiscVVectorState *rv_vector_;
+  RV32Register* xreg_[32];
+  RVVectorRegister* vreg_[32];
+  RVFpRegister* freg_[32];
+  RiscVState* state_;
+  Instruction* instruction_;
+  Instruction* child_instruction_;
+  FlatDemandMemory* memory_;
+  RiscVVectorState* rv_vector_;
   absl::BitGen bitgen_;
 };
 
diff --git a/riscv/test/riscv_vector_memory_instructions_test.cc b/riscv/test/riscv_vector_memory_instructions_test.cc
index 3eb40b0..eedd296 100644
--- a/riscv/test/riscv_vector_memory_instructions_test.cc
+++ b/riscv/test/riscv_vector_memory_instructions_test.cc
@@ -124,7 +124,7 @@
     child_instruction_ = new Instruction(kInstAddress, state_);
     child_instruction_->set_size(4);
     // Initialize a portion of memory with a known pattern.
-    auto *db = state_->db_factory()->Allocate(8192);
+    auto* db = state_->db_factory()->Allocate(8192);
     auto span = db->Get<uint8_t>();
     for (int i = 0; i < 8192; i++) {
       span[i] = i & 0xff;
@@ -151,10 +151,10 @@
   // Creates immediate operands with the values from the vector and appends them
   // to the given instruction.
   template <typename T>
-  void AppendImmediateOperands(Instruction *inst,
-                               const std::vector<T> &values) {
+  void AppendImmediateOperands(Instruction* inst,
+                               const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       inst->AppendSource(src);
     }
   }
@@ -162,46 +162,46 @@
   // Creates immediate operands with the values from the vector and appends them
   // to the default instruction.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     AppendImmediateOperands<T>(instruction_, values);
   }
 
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the given instruction.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the default instruction.
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
   // Returns the value of the named vector register.
   template <typename T>
   T GetRegisterValue(absl::string_view vreg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(vreg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(vreg_name).first;
     return reg->data_buffer()->Get<T>();
   }
 
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(
-      const std::vector<tuple<std::string, const T>> &values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
+      const std::vector<tuple<std::string, const T>>& values) {
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -210,43 +210,43 @@
 
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the given instruction.
-  void AppendVectorRegisterOperands(Instruction *inst,
-                                    const std::vector<int> &sources,
-                                    const std::vector<int> &destinations) {
-    for (auto &reg_no : sources) {
-      std::vector<RegisterBase *> reg_vec;
+  void AppendVectorRegisterOperands(Instruction* inst,
+                                    const std::vector<int>& sources,
+                                    const std::vector<int>& destinations) {
+    for (auto& reg_no : sources) {
+      std::vector<RegisterBase*> reg_vec;
       for (int i = 0; (i < 8) && (i + reg_no < 32); i++) {
         std::string reg_name = absl::StrCat("v", i + reg_no);
         reg_vec.push_back(
             state_->GetRegister<RVVectorRegister>(reg_name).first);
       }
-      auto *op = new RV32VectorSourceOperand(
-          absl::Span<RegisterBase *>(reg_vec), absl::StrCat("v", reg_no));
+      auto* op = new RV32VectorSourceOperand(absl::Span<RegisterBase*>(reg_vec),
+                                             absl::StrCat("v", reg_no));
       inst->AppendSource(op);
     }
-    for (auto &reg_no : destinations) {
-      std::vector<RegisterBase *> reg_vec;
+    for (auto& reg_no : destinations) {
+      std::vector<RegisterBase*> reg_vec;
       for (int i = 0; (i < 8) && (i + reg_no < 32); i++) {
         std::string reg_name = absl::StrCat("v", i + reg_no);
         reg_vec.push_back(
             state_->GetRegister<RVVectorRegister>(reg_name).first);
       }
-      auto *op = new RV32VectorDestinationOperand(
-          absl::Span<RegisterBase *>(reg_vec), 0, absl::StrCat("v", reg_no));
+      auto* op = new RV32VectorDestinationOperand(
+          absl::Span<RegisterBase*>(reg_vec), 0, absl::StrCat("v", reg_no));
       inst->AppendDestination(op);
     }
   }
   // Creates source and destination scalar register operands for the registers
   // named in the two vectors and append them to the default instruction.
-  void AppendVectorRegisterOperands(const std::vector<int> &sources,
-                                    const std::vector<int> &destinations) {
+  void AppendVectorRegisterOperands(const std::vector<int>& sources,
+                                    const std::vector<int>& destinations) {
     AppendVectorRegisterOperands(instruction_, sources, destinations);
   }
 
   // Returns the value of the named vector register.
   template <typename T>
   T GetVectorRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RVVectorRegister>(reg_name).first;
+    auto* reg = state_->GetRegister<RVVectorRegister>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
@@ -255,10 +255,10 @@
   // value.
   template <typename T>
   void SetVectorRegisterValues(
-      const std::vector<tuple<std::string, Span<const T>>> &values) {
-    for (auto &[vreg_name, span] : values) {
-      auto *vreg = state_->GetRegister<RVVectorRegister>(vreg_name).first;
-      auto *db = state_->db_factory()->MakeCopyOf(vreg->data_buffer());
+      const std::vector<tuple<std::string, Span<const T>>>& values) {
+    for (auto& [vreg_name, span] : values) {
+      auto* vreg = state_->GetRegister<RVVectorRegister>(vreg_name).first;
+      auto* db = state_->db_factory()->MakeCopyOf(vreg->data_buffer());
       db->template Set<T>(span);
       vreg->SetDataBuffer(db);
       db->DecRef();
@@ -266,7 +266,7 @@
   }
 
   // Initializes the semantic function of the instruction object.
-  void SetSemanticFunction(Instruction *inst,
+  void SetSemanticFunction(Instruction* inst,
                            Instruction::SemanticFunction fcn) {
     inst->set_semantic_function(fcn);
   }
@@ -286,7 +286,7 @@
 
   // Configure the vector unit according to the vtype and vlen values.
   void ConfigureVectorUnit(uint32_t vtype, uint32_t vlen) {
-    Instruction *inst = new Instruction(state_);
+    Instruction* inst = new Instruction(state_);
     AppendImmediateOperands<uint32_t>(inst, {vlen, vtype});
     SetSemanticFunction(inst, absl::bind_front(&Vsetvl, true, false));
     inst->Execute(nullptr);
@@ -296,7 +296,7 @@
   template <typename T>
   T ComputeValue(int address) {
     T value = 0;
-    uint8_t *ptr = reinterpret_cast<uint8_t *>(&value);
+    uint8_t* ptr = reinterpret_cast<uint8_t*>(&value);
     for (int j = 0; j < sizeof(T); j++) {
       ptr[j] = (address + j) & 0xff;
     }
@@ -824,7 +824,7 @@
         instruction_->Execute(nullptr);
 
         // Check memory values.
-        auto *data_db = state_->db_factory()->Allocate<T>(1);
+        auto* data_db = state_->db_factory()->Allocate<T>(1);
         uint64_t base = kDataStoreAddress;
         T value = 1;
         for (int i = 0; i < 8 * kVectorLengthInBytes / sizeof(T); i++) {
@@ -876,7 +876,7 @@
       }
     }
 
-    auto *data_db = state_->db_factory()->Allocate<ValueType>(1);
+    auto* data_db = state_->db_factory()->Allocate<ValueType>(1);
     // Iterate over different lmul values.
     for (int lmul_index = 0; lmul_index < 7; lmul_index++) {
       // Configure vector unit.
@@ -969,7 +969,7 @@
 
     int num_values_per_register = kVectorLengthInBytes / sizeof(T);
     // Can load all the data in one load, so set the data_db size accordingly.
-    auto *data_db =
+    auto* data_db =
         state_->db_factory()->Allocate<uint8_t>(kVectorLengthInBytes * 8);
     // Iterate over legal values in the nf field.
     for (int nf = 1; nf < 8; nf++) {
@@ -1082,7 +1082,7 @@
 
     int num_values_per_register = kVectorLengthInBytes / sizeof(T);
 
-    auto *data_db = state_->db_factory()->Allocate<T>(1);
+    auto* data_db = state_->db_factory()->Allocate<T>(1);
     // Iterate over legal values in the nf field.
     for (int nf = 1; nf < 8; nf++) {
       int num_fields = nf + 1;
@@ -1205,7 +1205,7 @@
     int index_values_per_reg = kVectorLengthInBytes / sizeof(IndexType);
     int num_values_per_register = kVectorLengthInBytes / sizeof(T);
 
-    auto *data_db = state_->db_factory()->Allocate<T>(1);
+    auto* data_db = state_->db_factory()->Allocate<T>(1);
     // Iterate over legal values in the nf field.
     for (int nf = 1; nf < 8; nf++) {
       int num_fields = nf + 1;
@@ -1329,13 +1329,13 @@
   }
 
  protected:
-  RV32Register *xreg_[32];
-  RVVectorRegister *vreg_[32];
-  RiscVState *state_;
-  Instruction *instruction_;
-  Instruction *child_instruction_;
-  FlatDemandMemory *memory_;
-  RiscVVectorState *rv_vector_;
+  RV32Register* xreg_[32];
+  RVVectorRegister* vreg_[32];
+  RiscVState* state_;
+  Instruction* instruction_;
+  Instruction* child_instruction_;
+  FlatDemandMemory* memory_;
+  RiscVVectorState* rv_vector_;
 };
 
 // Test the vector configuration set instructions. There are three separate
@@ -1760,7 +1760,7 @@
 
   // Verify result.
   EXPECT_FALSE(rv_vector_->vector_exception());
-  auto *data_db = state_->db_factory()->Allocate<uint8_t>(kVectorLengthInBytes);
+  auto* data_db = state_->db_factory()->Allocate<uint8_t>(kVectorLengthInBytes);
   state_->LoadMemory(instruction_, kDataStoreAddress, data_db, nullptr,
                      nullptr);
   auto span = data_db->Get<uint8_t>();
diff --git a/riscv/test/riscv_vector_opi_instructions_test.cc b/riscv/test/riscv_vector_opi_instructions_test.cc
index 28cefbe..9aba9d5 100644
--- a/riscv/test/riscv_vector_opi_instructions_test.cc
+++ b/riscv/test/riscv_vector_opi_instructions_test.cc
@@ -2042,8 +2042,8 @@
 }
 
 // This wrapper function factors out the main body of the Vmvr test.
-void VmvrWrapper(int num_reg, RiscVVectorInstructionsTest *tester,
-                 Instruction *inst) {
+void VmvrWrapper(int num_reg, RiscVVectorInstructionsTest* tester,
+                 Instruction* inst) {
   tester->SetSemanticFunction(absl::bind_front(&Vmvr, num_reg));
   // Number of elements per vector register.
   constexpr int vs2_size = kVectorLengthInBytes / sizeof(uint64_t);
@@ -2093,7 +2093,7 @@
 
 // Templated helper functions for Vssr testing.
 template <typename T>
-T VssrHelper(RiscVVectorInstructionsTest *tester, T vs2, T vs1,
+T VssrHelper(RiscVVectorInstructionsTest* tester, T vs2, T vs1,
              int rounding_mode) {
   using UT = typename MakeUnsigned<T>::type;
   int max_shift = (sizeof(T) << 3) - 1;
@@ -2111,8 +2111,8 @@
 // These wrapper functions simplify the test bodies, and make it a little
 // easier to avoid errors due to type and sew specifications.
 template <typename T>
-void VssrVVWrapper(absl::string_view base_name, Instruction *inst,
-                   RiscVVectorInstructionsTest *tester) {
+void VssrVVWrapper(absl::string_view base_name, Instruction* inst,
+                   RiscVVectorInstructionsTest* tester) {
   // Iterate across rounding modes.
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
@@ -2124,8 +2124,8 @@
   }
 }
 template <typename T>
-void VssrVXWrapper(absl::string_view base_name, Instruction *inst,
-                   RiscVVectorInstructionsTest *tester) {
+void VssrVXWrapper(absl::string_view base_name, Instruction* inst,
+                   RiscVVectorInstructionsTest* tester) {
   // Iterate across rounding modes.
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
@@ -2210,8 +2210,8 @@
 
 // Templated helper functions for Vnclip/Vnclipu instructions.
 template <typename T, typename WideT>
-T VnclipHelper(RiscVVectorInstructionsTest *tester, WideT vs2, T vs1, int rm,
-               RiscVVectorState *rv_vector) {
+T VnclipHelper(RiscVVectorInstructionsTest* tester, WideT vs2, T vs1, int rm,
+               RiscVVectorState* rv_vector) {
   auto vs1_16 = static_cast<WideT>(vs1);
   auto shifted = VssrHelper<WideT>(tester, vs2, vs1_16, rm);
   if (shifted < std::numeric_limits<T>::min()) {
@@ -2226,8 +2226,8 @@
 }
 
 template <typename T>
-void VnclipVVWrapper(absl::string_view base_name, Instruction *inst,
-                     RiscVVectorInstructionsTest *tester) {
+void VnclipVVWrapper(absl::string_view base_name, Instruction* inst,
+                     RiscVVectorInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
@@ -2239,8 +2239,8 @@
   }
 }
 template <typename T>
-void VnclipVXWrapper(absl::string_view base_name, Instruction *inst,
-                     RiscVVectorInstructionsTest *tester) {
+void VnclipVXWrapper(absl::string_view base_name, Instruction* inst,
+                     RiscVVectorInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
@@ -2310,8 +2310,8 @@
 
 // Vector fractional multiply with rounding and saturation.
 template <typename T>
-T VsmulHelper(RiscVVectorInstructionsTest *tester, T vs2, T vs1, int rm,
-              RiscVVectorState *rv_vector) {
+T VsmulHelper(RiscVVectorInstructionsTest* tester, T vs2, T vs1, int rm,
+              RiscVVectorState* rv_vector) {
   using WT = typename WideType<T>::type;
   WT vs2_w = static_cast<WT>(vs2);
   WT vs1_w = static_cast<WT>(vs1);
@@ -2327,8 +2327,8 @@
 }
 
 template <typename T>
-void VsmulVVWrapper(absl::string_view base_name, Instruction *inst,
-                    RiscVVectorInstructionsTest *tester) {
+void VsmulVVWrapper(absl::string_view base_name, Instruction* inst,
+                    RiscVVectorInstructionsTest* tester) {
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
     tester->BinaryOpTestHelperVV<T, T, T>(
@@ -2339,8 +2339,8 @@
   }
 }
 template <typename T>
-void VsmulVXWrapper(absl::string_view base_name, Instruction *inst,
-                    RiscVVectorInstructionsTest *tester) {
+void VsmulVXWrapper(absl::string_view base_name, Instruction* inst,
+                    RiscVVectorInstructionsTest* tester) {
   for (int rm = 0; rm < 4; rm++) {
     tester->rv_vector()->set_vxrm(rm);
     tester->BinaryOpTestHelperVV<T, T, T>(
diff --git a/riscv/test/riscv_vector_opm_instructions_test.cc b/riscv/test/riscv_vector_opm_instructions_test.cc
index 1a6c396..786e12f 100644
--- a/riscv/test/riscv_vector_opm_instructions_test.cc
+++ b/riscv/test/riscv_vector_opm_instructions_test.cc
@@ -139,7 +139,7 @@
 
 // Helper functions for averaging add and subtract.
 template <typename T>
-T VaaddHelper(RiscVVectorOpmInstructionsTest *tester, T vs2, T vs1) {
+T VaaddHelper(RiscVVectorOpmInstructionsTest* tester, T vs2, T vs1) {
   // Create two sums, lower nibble, and the upper part. Then combine after
   // rounding.
   T vs2_l = vs2 & 0xf;
@@ -157,7 +157,7 @@
 }
 
 template <typename T>
-T VasubHelper(RiscVVectorOpmInstructionsTest *tester, T vs2, T vs1) {
+T VasubHelper(RiscVVectorOpmInstructionsTest* tester, T vs2, T vs1) {
   // Create two diffs, lower nibble, and the upper part. Then combine after
   // rounding.
   T vs2_l = vs2 & 0xf;
@@ -176,7 +176,7 @@
 
 // Vaaddu vector-vector test helper function.
 template <typename T>
-inline void VaadduVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VaadduVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vaaddu);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vaaddu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -187,7 +187,7 @@
 
 // Vaaddu vector-scalar test helper function.
 template <typename T>
-inline void VaadduVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VaadduVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vaaddu);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vaaddu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -219,7 +219,7 @@
 
 // Vaadd vector-vector test helper function.
 template <typename T>
-inline void VaaddVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VaaddVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vaadd);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vaaddu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -230,7 +230,7 @@
 
 // Vaadd vector-vector test helper function.
 template <typename T>
-inline void VaaddVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VaaddVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vaadd);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vaaddu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -262,7 +262,7 @@
 
 // Vasubu vector-vector test helper function.
 template <typename T>
-inline void VasubuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VasubuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vasubu);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vasubu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -272,7 +272,7 @@
 }
 // Vasubu vector-scalar test helper function.
 template <typename T>
-inline void VasubuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VasubuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vasubu);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vasubu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -304,7 +304,7 @@
 
 // Vasub vector-vector test helper function.
 template <typename T>
-inline void VasubVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VasubVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vasub);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vasub", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -314,7 +314,7 @@
 }
 // Vasub vector-scalar test helper function.
 template <typename T>
-inline void VasubVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VasubVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vasub);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vasub", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -397,7 +397,7 @@
 
 // Vdivu vector-vector test helper function.
 template <typename T>
-inline void VdivuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VdivuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vdivu);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vdivu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -408,7 +408,7 @@
 }
 // Vdivu vector-scalar test helper function.
 template <typename T>
-inline void VdivuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VdivuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vdivu);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vdivu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -441,7 +441,7 @@
 
 // Vdiv vector-vector test helper function.
 template <typename T>
-inline void VdivVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VdivVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vdiv);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vdiv", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -452,7 +452,7 @@
 }
 // Vdiv vector-scalar test helper function.
 template <typename T>
-inline void VdivVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VdivVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vdiv);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vdiv", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -485,7 +485,7 @@
 
 // Vremu vector-vector test helper function.
 template <typename T>
-inline void VremuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VremuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vremu);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vremu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -496,7 +496,7 @@
 }
 // Vremu vector-scalar test helper function.
 template <typename T>
-inline void VremuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VremuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vremu);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vremu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -529,7 +529,7 @@
 
 // Vrem vector-vector test helper function.
 template <typename T>
-inline void VremVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VremVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vrem);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vrem", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -540,7 +540,7 @@
 }
 // Vrem vector-scalar test helper function.
 template <typename T>
-inline void VremVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VremVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vrem);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vrem", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -573,7 +573,7 @@
 
 // Vmulhu vector-vector test helper function.
 template <typename T>
-inline void VmulhuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmulhu);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vmulhu", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -586,7 +586,7 @@
 }
 // Vmulhu vector-scalar test helper function.
 template <typename T>
-inline void VmulhuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmulhu);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vmulhu", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -621,7 +621,7 @@
 
 // Vmulh vector-vector test helper function.
 template <typename T>
-inline void VmulhVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmulh);
   tester->BinaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vmulh", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -635,7 +635,7 @@
 
 // Vmulh vector-scalar test helper function.
 template <typename T>
-inline void VmulhVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmulh);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vmulh", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -670,7 +670,7 @@
 
 // Vmul vector-vector test helper function.
 template <typename T>
-inline void VmulVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vmul);
   tester->BinaryOpTestHelperVV<T, T, T>(
@@ -682,7 +682,7 @@
 
 // Vmul vector-scalar test helper function.
 template <typename T>
-inline void VmulVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vmul);
   tester->BinaryOpTestHelperVX<T, T, T, RVScalarRegister>(
@@ -715,7 +715,7 @@
 
 // Vmulhsu vector-vector test helper function.
 template <typename T>
-inline void VmulhsuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhsuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using ST = typename std::make_signed<T>::type;
   tester->SetSemanticFunction(&Vmulhsu);
   tester->BinaryOpTestHelperVV<T, ST, T>(
@@ -730,7 +730,7 @@
 
 // Vmulhsu vector-scalar test helper function.
 template <typename T>
-inline void VmulhsuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmulhsuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using ST = typename std::make_signed<T>::type;
   tester->SetSemanticFunction(&Vmulhsu);
   tester->BinaryOpTestHelperVX<T, ST, T, RVScalarRegister>(
@@ -766,7 +766,7 @@
 
 // Vmadd vector-vector test helper function.
 template <typename T>
-inline void VmaddVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmaddVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmadd);
   tester->TernaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vmadd", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -784,7 +784,7 @@
 
 // Vmadd vector-scalar test helper function.
 template <typename T>
-inline void VmaddVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmaddVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmadd);
   tester->TernaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vmadd", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -823,7 +823,7 @@
 
 // Vnmsub vector-vector test helper function.
 template <typename T>
-inline void VnmsubVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VnmsubVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vnmsub);
   tester->TernaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vnmsub", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -841,7 +841,7 @@
 
 // Vnmsub vector-scalar test helper function.
 template <typename T>
-inline void VnmsubVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VnmsubVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vnmsub);
   tester->TernaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vnmsub", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -880,7 +880,7 @@
 
 // Vmacc vector-vector test helper function.
 template <typename T>
-inline void VmaccVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmaccVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmacc);
   tester->TernaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vmacc", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -898,7 +898,7 @@
 
 // Vmacc vector-scalar test helper function.
 template <typename T>
-inline void VmaccVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VmaccVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vmacc);
   tester->TernaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vmacc", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -937,7 +937,7 @@
 
 // Vnmsac vector-vector test helper function.
 template <typename T>
-inline void VnmsacVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VnmsacVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vnmsac);
   tester->TernaryOpTestHelperVV<T, T, T>(
       absl::StrCat("Vnmsac", sizeof(T) * 8, "vv"), /*sew*/ sizeof(T) * 8,
@@ -955,7 +955,7 @@
 
 // Vnmsac vector-scalar test helper function.
 template <typename T>
-inline void VnmsacVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VnmsacVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   tester->SetSemanticFunction(&Vnmsac);
   tester->TernaryOpTestHelperVX<T, T, T, RVScalarRegister>(
       absl::StrCat("Vnmsac", sizeof(T) * 8, "vx"), /*sew*/ sizeof(T) * 8,
@@ -994,7 +994,7 @@
 
 // Vwaddu vector-vector test helper function.
 template <typename T>
-inline void VwadduVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwadduVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwaddu);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1006,7 +1006,7 @@
 
 // Vwaddu vector-scalar test helper function.
 template <typename T>
-inline void VwadduVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwadduVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwaddu);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1037,7 +1037,7 @@
 
 // Vwsubu vector-vector test helper function.
 template <typename T>
-inline void VwsubuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubu);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1049,7 +1049,7 @@
 
 // Vwsubu vector-scalar test helper function.
 template <typename T>
-inline void VwsubuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubu);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1080,7 +1080,7 @@
 
 // Vwadd vector-vector test helper function.
 template <typename T>
-inline void VwaddVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwaddVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwadd);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1092,7 +1092,7 @@
 
 // Vwadd vector-scalar test helper function.
 template <typename T>
-inline void VwaddVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwaddVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwadd);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1123,7 +1123,7 @@
 
 // Vwsub vector-vector test helper function.
 template <typename T>
-inline void VwsubVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsub);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1138,7 +1138,7 @@
 
 // Vwsub vector-scalar test helper function.
 template <typename T>
-inline void VwsubVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsub);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1172,7 +1172,7 @@
 
 // Vwadduw vector-vector test helper function.
 template <typename T>
-inline void VwadduwVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwadduwVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwadduw);
   tester->BinaryOpTestHelperVV<WT, WT, T>(
@@ -1183,7 +1183,7 @@
 
 // Vwadduw vector-scalar test helper function.
 template <typename T>
-inline void VwadduwVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwadduwVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwadduw);
   tester->BinaryOpTestHelperVX<WT, WT, T, RVScalarRegister>(
@@ -1213,7 +1213,7 @@
 
 // Vwsubuw vector-vector test helper function.
 template <typename T>
-inline void VwsubuwVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubuwVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubuw);
   tester->BinaryOpTestHelperVV<WT, WT, T>(
@@ -1224,7 +1224,7 @@
 
 // Vwsubuw vector-scalar test helper function.
 template <typename T>
-inline void VwsubuwVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubuwVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubuw);
   tester->BinaryOpTestHelperVX<WT, WT, T, RVScalarRegister>(
@@ -1254,7 +1254,7 @@
 
 // Vwaddw vector-vector test helper function.
 template <typename T>
-inline void VwaddwVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwaddwVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwaddw);
   tester->BinaryOpTestHelperVV<WT, WT, T>(
@@ -1265,7 +1265,7 @@
 
 // Vwaddw vector-scalar test helper function.
 template <typename T>
-inline void VwaddwVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwaddwVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwaddw);
   tester->BinaryOpTestHelperVX<WT, WT, T, RVScalarRegister>(
@@ -1295,7 +1295,7 @@
 
 // Vwsubw vector-vector test helper function.
 template <typename T>
-inline void VwsubwVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubwVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubw);
   tester->BinaryOpTestHelperVV<WT, WT, T>(
@@ -1306,7 +1306,7 @@
 
 // Vwsubw vector-scalar test helper function.
 template <typename T>
-inline void VwsubwVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwsubwVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwsubw);
   tester->BinaryOpTestHelperVX<WT, WT, T, RVScalarRegister>(
@@ -1336,7 +1336,7 @@
 
 // Vwmul vector-vector test helper function.
 template <typename T>
-inline void VwmuluVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmuluVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmulu);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1348,7 +1348,7 @@
 
 // Vwmulu vector-scalar test helper function.
 template <typename T>
-inline void VwmuluVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmuluVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmulu);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1379,7 +1379,7 @@
 
 // Vwmul vector-vector test helper function.
 template <typename T>
-inline void VwmulVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmulVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmul);
   tester->BinaryOpTestHelperVV<WT, T, T>(
@@ -1391,7 +1391,7 @@
 
 // Vwmul vector-scalar test helper function.
 template <typename T>
-inline void VwmulVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmulVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmul);
   tester->BinaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1422,7 +1422,7 @@
 
 // Vwmul vector-vector test helper function.
 template <typename T>
-inline void VwmulsuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmulsuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmulsu);
@@ -1435,7 +1435,7 @@
 
 // Vwmulsu vector-scalar test helper function.
 template <typename T>
-inline void VwmulsuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmulsuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmulsu);
@@ -1467,7 +1467,7 @@
 
 // Vmaccu vector-vector test helper function.
 template <typename T>
-inline void VwmaccuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmaccu);
   tester->TernaryOpTestHelperVV<WT, T, T>(
@@ -1479,7 +1479,7 @@
 
 // Vwmaccu vector-scalar test helper function.
 template <typename T>
-inline void VwmaccuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmaccu);
   tester->TernaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1508,7 +1508,7 @@
 
 // Vmacc vector-vector test helper function.
 template <typename T>
-inline void VwmaccVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmacc);
   tester->TernaryOpTestHelperVV<WT, T, T>(
@@ -1525,7 +1525,7 @@
 
 // Vwmacc vector-scalar test helper function.
 template <typename T>
-inline void VwmaccVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   tester->SetSemanticFunction(&Vwmacc);
   tester->TernaryOpTestHelperVX<WT, T, T, RVScalarRegister>(
@@ -1559,7 +1559,7 @@
 
 // Vmaccus vector-vector test helper function.
 template <typename T>
-inline void VwmaccusVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccusVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmaccus);
@@ -1577,7 +1577,7 @@
 
 // Vwmaccus vector-scalar test helper function.
 template <typename T>
-inline void VwmaccusVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccusVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmaccus);
@@ -1612,7 +1612,7 @@
 
 // Vmaccsu vector-vector test helper function.
 template <typename T>
-inline void VwmaccsuVVHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccsuVVHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmaccsu);
@@ -1630,7 +1630,7 @@
 
 // Vwmaccsu vector-scalar test helper function.
 template <typename T>
-inline void VwmaccsuVXHelper(RiscVVectorOpmInstructionsTest *tester) {
+inline void VwmaccsuVXHelper(RiscVVectorOpmInstructionsTest* tester) {
   using WT = typename WideType<T>::type;
   using UT = typename std::make_unsigned<T>::type;
   tester->SetSemanticFunction(&Vwmaccsu);
diff --git a/riscv/test/riscv_vector_permute_instructions_test.cc b/riscv/test/riscv_vector_permute_instructions_test.cc
index d649d59..f71a970 100644
--- a/riscv/test/riscv_vector_permute_instructions_test.cc
+++ b/riscv/test/riscv_vector_permute_instructions_test.cc
@@ -56,9 +56,9 @@
 
 // Helper function for vector-vector vrgather instructions.
 template <typename T, typename I>
-void VrgatherVVHelper(RiscVVectorPermuteInstructionsTest *tester,
-                      Instruction *inst) {
-  auto *rv_vector = tester->rv_vector();
+void VrgatherVVHelper(RiscVVectorPermuteInstructionsTest* tester,
+                      Instruction* inst) {
+  auto* rv_vector = tester->rv_vector();
   // Configure vector unit for sew and maximum lmul.
   uint32_t vtype = 0;
   int max_regs = 8;
@@ -126,9 +126,9 @@
 
 // Helper function for vector-scalar vrgather instructions.
 template <typename T>
-void VrgatherVSHelper(RiscVVectorPermuteInstructionsTest *tester,
-                      Instruction *inst) {
-  auto *rv_vector = tester->rv_vector();
+void VrgatherVSHelper(RiscVVectorPermuteInstructionsTest* tester,
+                      Instruction* inst) {
+  auto* rv_vector = tester->rv_vector();
   // Configure vector unit.
   uint32_t vtype =
       (kSewSettingsByByteSize[sizeof(T)] << 3) | kLmulSettingByLogSize[7];
@@ -266,9 +266,9 @@
 
 // Helper function for slideup/down instructions.
 template <typename T>
-void SlideHelper(RiscVVectorPermuteInstructionsTest *tester, Instruction *inst,
+void SlideHelper(RiscVVectorPermuteInstructionsTest* tester, Instruction* inst,
                  bool is_slide_up) {
-  auto *rv_vector = tester->rv_vector();
+  auto* rv_vector = tester->rv_vector();
   uint32_t vtype =
       (kSewSettingsByByteSize[sizeof(T)] << 3) | kLmulSettingByLogSize[7];
   tester->ConfigureVectorUnit(vtype, 2048);
@@ -412,9 +412,9 @@
 }
 
 template <typename T>
-void Slide1Helper(RiscVVectorPermuteInstructionsTest *tester, Instruction *inst,
+void Slide1Helper(RiscVVectorPermuteInstructionsTest* tester, Instruction* inst,
                   bool is_slide_up) {
-  auto *rv_vector = tester->rv_vector();
+  auto* rv_vector = tester->rv_vector();
   uint32_t vtype =
       (kSewSettingsByByteSize[sizeof(T)] << 3) | kLmulSettingByLogSize[7];
   tester->ConfigureVectorUnit(vtype, 2048);
@@ -550,9 +550,9 @@
 }
 
 template <typename T>
-void CompressHelper(RiscVVectorPermuteInstructionsTest *tester,
-                    Instruction *inst) {
-  auto *rv_vector = tester->rv_vector();
+void CompressHelper(RiscVVectorPermuteInstructionsTest* tester,
+                    Instruction* inst) {
+  auto* rv_vector = tester->rv_vector();
   uint32_t vtype =
       (kSewSettingsByByteSize[sizeof(T)] << 3) | kLmulSettingByLogSize[7];
   tester->ConfigureVectorUnit(vtype, 2048);
diff --git a/riscv/test/riscv_vector_reduction_instructions_test.cc b/riscv/test/riscv_vector_reduction_instructions_test.cc
index ba51fcb..827419c 100644
--- a/riscv/test/riscv_vector_reduction_instructions_test.cc
+++ b/riscv/test/riscv_vector_reduction_instructions_test.cc
@@ -16,17 +16,17 @@
 
 #include <algorithm>
 #include <cstdint>
-#include <limits>
-#include <string>
+#include <functional>
 #include <vector>
 
 #include "absl/random/random.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
+#include "absl/types/span.h"
 #include "googlemock/include/gmock/gmock.h"
 #include "mpact/sim/generic/instruction.h"
 #include "mpact/sim/generic/type_helpers.h"
 #include "riscv/riscv_register.h"
-#include "riscv/riscv_vector_state.h"
 #include "riscv/test/riscv_vector_instructions_test_base.h"
 
 namespace {
@@ -64,7 +64,7 @@
     : public RiscVVectorInstructionsTestBase {
  public:
   template <typename Vd, typename Vs2>
-  void ReductionOpTestHelper(absl::string_view name, int sew, Instruction *inst,
+  void ReductionOpTestHelper(absl::string_view name, int sew, Instruction* inst,
                              std::function<Vd(Vd, Vs2)> operation) {
     int byte_sew = sew / 8;
     if (byte_sew != sizeof(Vd) && byte_sew != sizeof(Vs2)) {
diff --git a/riscv/test/riscv_vector_true_test.cc b/riscv/test/riscv_vector_true_test.cc
index ec9139a..bb0d992 100644
--- a/riscv/test/riscv_vector_true_test.cc
+++ b/riscv/test/riscv_vector_true_test.cc
@@ -42,12 +42,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  RiscVVectorState *vstate_;
+  RiscVState* state_;
+  RiscVVectorState* vstate_;
 };
 
 TEST_F(RV32VectorTrueTest, Initial) {
-  auto *op = new RV32VectorTrueOperand(state_);
+  auto* op = new RV32VectorTrueOperand(state_);
   for (int i = 0; i < op->shape()[0]; ++i) {
     EXPECT_EQ(op->AsUint8(i), 0xff) << "element: " << i;
   }
@@ -55,8 +55,8 @@
 }
 
 TEST_F(RV32VectorTrueTest, Register) {
-  auto *op = new RV32VectorTrueOperand(state_);
-  auto *reg = op->GetRegister(0);
+  auto* op = new RV32VectorTrueOperand(state_);
+  auto* reg = op->GetRegister(0);
   auto span = reg->data_buffer()->Get<uint8_t>();
   for (int i = 0; i < op->shape()[0]; ++i) {
     EXPECT_EQ(span[i], 0xff) << "element: " << i;
diff --git a/riscv/test/riscv_vector_unary_instructions_test.cc b/riscv/test/riscv_vector_unary_instructions_test.cc
index 84953ea..50cdb86 100644
--- a/riscv/test/riscv_vector_unary_instructions_test.cc
+++ b/riscv/test/riscv_vector_unary_instructions_test.cc
@@ -568,7 +568,7 @@
 
 // Helper function for testing Viota instructions.
 template <typename T>
-void TestViota(RiscVVectorUnaryInstructionsTest *tester, Instruction *inst) {
+void TestViota(RiscVVectorUnaryInstructionsTest* tester, Instruction* inst) {
   // Set up vector unit.
   int byte_sew = sizeof(T);
   uint32_t vtype =
@@ -643,7 +643,7 @@
 
 // Helper function for testing Vid instructions.
 template <typename T>
-void TestVid(RiscVVectorUnaryInstructionsTest *tester, Instruction *inst) {
+void TestVid(RiscVVectorUnaryInstructionsTest* tester, Instruction* inst) {
   // Initialize the vector unit.
   int byte_sew = sizeof(T);
   uint32_t vtype =
diff --git a/riscv/test/riscv_zc64_instructions_test.cc b/riscv/test/riscv_zc64_instructions_test.cc
index 2d97701..52ea359 100644
--- a/riscv/test/riscv_zc64_instructions_test.cc
+++ b/riscv/test/riscv_zc64_instructions_test.cc
@@ -72,7 +72,7 @@
     instruction_->set_size(4);
     // Set the jump table address to 0x4000.
     state_->jvt()->Set(static_cast<uint64_t>(0x4000));
-    auto *db = state_->db_factory()->Allocate<uint64_t>(256);
+    auto* db = state_->db_factory()->Allocate<uint64_t>(256);
     auto db_span = db->Get<uint64_t>();
     for (auto i = 0; i < 256; ++i) {
       db_span[i] = 0x8000 + i * sizeof(uint64_t);
@@ -89,29 +89,29 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       instruction_->AppendSource(src);
     }
   }
@@ -120,8 +120,8 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
       reg->data_buffer()->template Set<T>(0, value);
     }
   }
@@ -134,7 +134,7 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV64Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV64Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
@@ -175,19 +175,19 @@
   }
 
   void ResetMemory() {
-    auto *db = state_->db_factory()->Allocate<uint8_t>(0x2000);
+    auto* db = state_->db_factory()->Allocate<uint8_t>(0x2000);
     std::memset(db->raw_ptr(), 0, 0x2000);
     state_->StoreMemory(instruction_, 0, db);
     db->DecRef();
   }
 
-  FlatDemandMemory *memory_;
-  RiscVState *state_;
-  Instruction *instruction_;
+  FlatDemandMemory* memory_;
+  RiscVState* state_;
+  Instruction* instruction_;
 };
 
 constexpr int kNumReg[] = {0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13};
-constexpr char const *kRegMap[] = {kX1,  kX8,  kX9,  kX18, kX19, kX20, kX21,
+constexpr char const* kRegMap[] = {kX1,  kX8,  kX9,  kX18, kX19, kX20, kX21,
                                    kX22, kX23, kX24, kX25, kX26, kX27};
 constexpr int kStackAdjBase[] = {
     0, 0, 0, 0, 16, 16, 32, 32, 48, 48, 64, 64, 80, 80, 96, 112,
@@ -226,7 +226,7 @@
       instruction_->Execute(nullptr);
 
       // Fetch memory content.
-      auto *db = state_->db_factory()->Allocate<uint64_t>(13);
+      auto* db = state_->db_factory()->Allocate<uint64_t>(13);
       state_->LoadMemory(instruction_,
                          kMemAddress - kNumReg[rlist] * sizeof(uint64_t), db,
                          nullptr, nullptr);
@@ -255,7 +255,7 @@
 }
 
 TEST_F(RV64ZcInstructionTest, RV64ZCmpPop) {
-  auto *db = state_->db_factory()->Allocate<uint64_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint64_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
@@ -322,7 +322,7 @@
 }
 
 TEST_F(RV64ZcInstructionTest, RV64ZCmpPopRet) {
-  auto *db = state_->db_factory()->Allocate<uint64_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint64_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
@@ -391,7 +391,7 @@
 }
 
 TEST_F(RV64ZcInstructionTest, RV64ZCmpPopRetz) {
-  auto *db = state_->db_factory()->Allocate<uint64_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint64_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
diff --git a/riscv/test/riscv_zc_instructions_test.cc b/riscv/test/riscv_zc_instructions_test.cc
index 4412812..b2283f8 100644
--- a/riscv/test/riscv_zc_instructions_test.cc
+++ b/riscv/test/riscv_zc_instructions_test.cc
@@ -73,7 +73,7 @@
     instruction_->set_size(4);
     // Set the jump table address to 0x4000.
     state_->jvt()->Set(static_cast<uint32_t>(0x4000));
-    auto *db = state_->db_factory()->Allocate<uint32_t>(256);
+    auto* db = state_->db_factory()->Allocate<uint32_t>(256);
     auto db_span = db->Get<uint32_t>();
     for (auto i = 0; i < 256; ++i) {
       db_span[i] = 0x8000 + i * sizeof(uint64_t);
@@ -90,29 +90,29 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
     AppendRegisterOperands(instruction_, sources, destinations);
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(const std::vector<T> &values) {
+  void AppendImmediateOperands(const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       instruction_->AppendSource(src);
     }
   }
@@ -121,8 +121,8 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       reg->data_buffer()->template Set<T>(0, value);
     }
   }
@@ -135,7 +135,7 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
@@ -176,19 +176,19 @@
   }
 
   void ResetMemory() {
-    auto *db = state_->db_factory()->Allocate<uint8_t>(0x2000);
+    auto* db = state_->db_factory()->Allocate<uint8_t>(0x2000);
     std::memset(db->raw_ptr(), 0, 0x2000);
     state_->StoreMemory(instruction_, 0, db);
     db->DecRef();
   }
 
-  FlatDemandMemory *memory_;
-  RiscVState *state_;
-  Instruction *instruction_;
+  FlatDemandMemory* memory_;
+  RiscVState* state_;
+  Instruction* instruction_;
 };
 
 constexpr int kNumReg[] = {0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13};
-constexpr char const *kRegMap[] = {kX1,  kX8,  kX9,  kX18, kX19, kX20, kX21,
+constexpr char const* kRegMap[] = {kX1,  kX8,  kX9,  kX18, kX19, kX20, kX21,
                                    kX22, kX23, kX24, kX25, kX26, kX27};
 constexpr int kStackAdjBase[] = {
     0, 0, 0, 0, 16, 16, 16, 16, 32, 32, 32, 32, 48, 48, 48, 64,
@@ -227,7 +227,7 @@
       instruction_->Execute(nullptr);
 
       // Fetch memory content.
-      auto *db = state_->db_factory()->Allocate<uint32_t>(13);
+      auto* db = state_->db_factory()->Allocate<uint32_t>(13);
       state_->LoadMemory(instruction_,
                          kMemAddress - kNumReg[rlist] * sizeof(uint32_t), db,
                          nullptr, nullptr);
@@ -256,7 +256,7 @@
 }
 
 TEST_F(RV32ZcInstructionTest, RV32ZCmpPop) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
@@ -323,7 +323,7 @@
 }
 
 TEST_F(RV32ZcInstructionTest, RV32ZCmpPopRet) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
@@ -392,7 +392,7 @@
 }
 
 TEST_F(RV32ZcInstructionTest, RV32ZCmpPopRetz) {
-  auto *db = state_->db_factory()->Allocate<uint32_t>(13);
+  auto* db = state_->db_factory()->Allocate<uint32_t>(13);
   // Test each combination of rlist and spimm6.
   for (int rlist = 4; rlist < 16; ++rlist) {
     for (int spimm6 = 0; spimm6 < 64; spimm6 += 16) {
diff --git a/riscv/test/riscv_zfh_instructions_test.cc b/riscv/test/riscv_zfh_instructions_test.cc
index 1630e05..28c1df6 100644
--- a/riscv/test/riscv_zfh_instructions_test.cc
+++ b/riscv/test/riscv_zfh_instructions_test.cc
@@ -152,13 +152,13 @@
   template <typename DestRegisterType, typename LhsRegisterType, typename R,
             typename LHS>
   void UnaryOpWithFflagsMixedTestHelper(
-      absl::string_view name, Instruction *inst,
+      absl::string_view name, Instruction* inst,
       absl::Span<const absl::string_view> reg_prefixes, int delta_position,
       std::function<std::tuple<R, uint32_t>(LHS, int)> operation);
 
   template <typename R, typename LHS, typename MHS, typename RHS>
   void TernaryOpWithFflagsFPTestHelper(
-      absl::string_view name, Instruction *inst,
+      absl::string_view name, Instruction* inst,
       absl::Span<const absl::string_view> reg_prefixes, int delta_position,
       std::function<std::tuple<R, uint32_t>(LHS, MHS, RHS)> operation);
 
@@ -188,7 +188,7 @@
 template <typename AddressType, typename ValueType>
 void RVZfhInstructionTestBase<XRegister>::SetupMemory(AddressType address,
                                                       ValueType value) {
-  DataBuffer *mem_db =
+  DataBuffer* mem_db =
       this->state_->db_factory()->template Allocate<ValueType>(1);
   mem_db->Set<ValueType>(0, value);
   this->state_->StoreMemory(this->instruction_, address, mem_db);
@@ -207,7 +207,7 @@
   this->template AppendRegisterOperands<RVFpRegister>(this->child_instruction_,
                                                       {}, {kFrdName});
 
-  ImmediateOperand<int16_t> *offset_source_operand =
+  ImmediateOperand<int16_t>* offset_source_operand =
       new ImmediateOperand<int16_t>(offset);
   this->instruction_->AppendSource(offset_source_operand);
 
@@ -251,7 +251,7 @@
 template <typename DestRegisterType, typename LhsRegisterType, typename R,
           typename LHS>
 void RVZfhInstructionTestBase<XRegister>::UnaryOpWithFflagsMixedTestHelper(
-    absl::string_view name, Instruction *inst,
+    absl::string_view name, Instruction* inst,
     absl::Span<const absl::string_view> reg_prefixes, int delta_position,
     std::function<std::tuple<R, uint32_t>(LHS, int)> operation) {
   using LhsInt = typename FPTypeInfo<LHS>::IntType;
@@ -273,33 +273,33 @@
     this->template AppendRegisterOperands<RVFpRegister>({}, {kRdName});
   }
   this->template AppendRegisterOperands<XRegister>({kRmName}, {});
-  auto *flag_op =
+  auto* flag_op =
       this->rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
   this->instruction_->AppendDestination(flag_op);
   if constexpr (std::is_integral<LHS>::value) {
-    for (auto &lhs : lhs_span) {
+    for (auto& lhs : lhs_span) {
       lhs = absl::Uniform(absl::IntervalClosed, this->bitgen_,
                           std::numeric_limits<LHS>::min(),
                           std::numeric_limits<LHS>::max());
     }
-    *reinterpret_cast<LHS *>(&lhs_span[0]) = 0;
-    *reinterpret_cast<LHS *>(&lhs_span[1]) = 1;
-    *reinterpret_cast<LHS *>(&lhs_span[2]) = 2;
-    *reinterpret_cast<LHS *>(&lhs_span[3]) = 4;
-    *reinterpret_cast<LHS *>(&lhs_span[4]) = 8;
-    *reinterpret_cast<LHS *>(&lhs_span[5]) = 16;
-    *reinterpret_cast<LHS *>(&lhs_span[6]) = 1024;
-    *reinterpret_cast<LHS *>(&lhs_span[7]) = 65000;
+    *reinterpret_cast<LHS*>(&lhs_span[0]) = 0;
+    *reinterpret_cast<LHS*>(&lhs_span[1]) = 1;
+    *reinterpret_cast<LHS*>(&lhs_span[2]) = 2;
+    *reinterpret_cast<LHS*>(&lhs_span[3]) = 4;
+    *reinterpret_cast<LHS*>(&lhs_span[4]) = 8;
+    *reinterpret_cast<LHS*>(&lhs_span[5]) = 16;
+    *reinterpret_cast<LHS*>(&lhs_span[6]) = 1024;
+    *reinterpret_cast<LHS*>(&lhs_span[7]) = 65000;
   } else {
     this->template FillArrayWithRandomFPValues<LHS>(lhs_span);
-    *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-    *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-    *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-    *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-    *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+    *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+    *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+    *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+    *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
   }
   for (int i = 0; i < kTestValueLength; i++) {
     if constexpr (std::is_integral<LHS>::value) {
@@ -349,7 +349,7 @@
 template <typename XRegister>
 template <typename R, typename LHS, typename MHS, typename RHS>
 void RVZfhInstructionTestBase<XRegister>::TernaryOpWithFflagsFPTestHelper(
-    absl::string_view name, Instruction *inst,
+    absl::string_view name, Instruction* inst,
     absl::Span<const absl::string_view> reg_prefixes, int delta_position,
     std::function<std::tuple<R, uint32_t>(LHS, MHS, RHS)> operation) {
   using LhsRegisterType = RVFpRegister;
@@ -386,42 +386,42 @@
   } else {
     this->template AppendRegisterOperands<RVFpRegister>({}, {kRdName});
   }
-  TestRoundingModeSourceOperand *rm_source_operand =
+  TestRoundingModeSourceOperand* rm_source_operand =
       new TestRoundingModeSourceOperand();
   this->instruction_->AppendSource(rm_source_operand);
-  auto *flag_op =
+  auto* flag_op =
       this->rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
   this->instruction_->AppendDestination(flag_op);
   this->template FillArrayWithRandomFPValues<LHS>(lhs_span);
   this->template FillArrayWithRandomFPValues<MHS>(mhs_span);
   this->template FillArrayWithRandomFPValues<RHS>(rhs_span);
   using LhsInt = typename FPTypeInfo<LHS>::IntType;
-  *reinterpret_cast<LhsInt *>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
-  *reinterpret_cast<LhsInt *>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
-  *reinterpret_cast<LhsInt *>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
-  *reinterpret_cast<LhsInt *>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
-  *reinterpret_cast<LhsInt *>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
-  *reinterpret_cast<LhsInt *>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
-  *reinterpret_cast<LhsInt *>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
-  *reinterpret_cast<LhsInt *>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
+  *reinterpret_cast<LhsInt*>(&lhs_span[0]) = FPTypeInfo<LHS>::kQNaN;
+  *reinterpret_cast<LhsInt*>(&lhs_span[1]) = FPTypeInfo<LHS>::kSNaN;
+  *reinterpret_cast<LhsInt*>(&lhs_span[2]) = FPTypeInfo<LHS>::kPosInf;
+  *reinterpret_cast<LhsInt*>(&lhs_span[3]) = FPTypeInfo<LHS>::kNegInf;
+  *reinterpret_cast<LhsInt*>(&lhs_span[4]) = FPTypeInfo<LHS>::kPosZero;
+  *reinterpret_cast<LhsInt*>(&lhs_span[5]) = FPTypeInfo<LHS>::kNegZero;
+  *reinterpret_cast<LhsInt*>(&lhs_span[6]) = FPTypeInfo<LHS>::kPosDenorm;
+  *reinterpret_cast<LhsInt*>(&lhs_span[7]) = FPTypeInfo<LHS>::kNegDenorm;
   using MhsInt = typename FPTypeInfo<MHS>::IntType;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 0]) = FPTypeInfo<MHS>::kQNaN;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 1]) = FPTypeInfo<MHS>::kSNaN;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 2]) = FPTypeInfo<MHS>::kPosInf;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 3]) = FPTypeInfo<MHS>::kNegInf;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 4]) = FPTypeInfo<MHS>::kPosZero;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 5]) = FPTypeInfo<MHS>::kNegZero;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 6]) = FPTypeInfo<MHS>::kPosDenorm;
-  *reinterpret_cast<MhsInt *>(&mhs_span[8 + 7]) = FPTypeInfo<MHS>::kNegDenorm;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 0]) = FPTypeInfo<MHS>::kQNaN;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 1]) = FPTypeInfo<MHS>::kSNaN;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 2]) = FPTypeInfo<MHS>::kPosInf;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 3]) = FPTypeInfo<MHS>::kNegInf;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 4]) = FPTypeInfo<MHS>::kPosZero;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 5]) = FPTypeInfo<MHS>::kNegZero;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 6]) = FPTypeInfo<MHS>::kPosDenorm;
+  *reinterpret_cast<MhsInt*>(&mhs_span[8 + 7]) = FPTypeInfo<MHS>::kNegDenorm;
   using RhsInt = typename FPTypeInfo<RHS>::IntType;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 0]) = FPTypeInfo<RHS>::kQNaN;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 1]) = FPTypeInfo<RHS>::kSNaN;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 2]) = FPTypeInfo<RHS>::kPosInf;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 3]) = FPTypeInfo<RHS>::kNegInf;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 4]) = FPTypeInfo<RHS>::kPosZero;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 5]) = FPTypeInfo<RHS>::kNegZero;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 6]) = FPTypeInfo<RHS>::kPosDenorm;
-  *reinterpret_cast<RhsInt *>(&rhs_span[16 + 7]) = FPTypeInfo<RHS>::kNegDenorm;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 0]) = FPTypeInfo<RHS>::kQNaN;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 1]) = FPTypeInfo<RHS>::kSNaN;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 2]) = FPTypeInfo<RHS>::kPosInf;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 3]) = FPTypeInfo<RHS>::kNegInf;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 4]) = FPTypeInfo<RHS>::kPosZero;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 5]) = FPTypeInfo<RHS>::kNegZero;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 6]) = FPTypeInfo<RHS>::kPosDenorm;
+  *reinterpret_cast<RhsInt*>(&rhs_span[16 + 7]) = FPTypeInfo<RHS>::kNegDenorm;
   for (int i = 0; i < kTestValueLength; i++) {
     this->template SetNaNBoxedRegisterValues<LHS, LhsRegisterType>(
         {{kR1Name, lhs_span[i]}});
@@ -680,13 +680,13 @@
     // Configure source and destination operands for the instruction.
     AppendRegisterOperands<RVFpRegister>({"f1"}, {"f5"});
     instruction_->AppendSource(new TestRoundingModeSourceOperand());
-    auto *flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
+    auto* flag_op = rv_fp_->fflags()->CreateSetDestinationOperand(0, "fflags");
     instruction_->AppendDestination(flag_op);
     assert(instruction_->SourcesSize() == 2);
     assert(instruction_->DestinationsSize() == 2);
 
     // Set all operands to known values before executing the instruction.
-    static_cast<TestRoundingModeSourceOperand *>(instruction_->Source(1))
+    static_cast<TestRoundingModeSourceOperand*>(instruction_->Source(1))
         ->SetRoundingMode(static_cast<FPRoundingMode>(rm));
     rv_fp_->SetRoundingMode(static_cast<FPRoundingMode>(rm));
     SetNaNBoxedRegisterValues<U, RVFpRegister>({{"f1", input_val}});
@@ -701,8 +701,8 @@
   }
 
   template <FPRoundingMode>
-  void RoundingConversionTestHelper(uint32_t, uint16_t, uint32_t &, uint32_t,
-                                    uint16_t, uint32_t &);
+  void RoundingConversionTestHelper(uint32_t, uint16_t, uint32_t&, uint32_t,
+                                    uint16_t, uint32_t&);
 
   template <FPRoundingMode rm>
   void RoundingPointTest(uint16_t);
@@ -713,8 +713,8 @@
 template <FPRoundingMode rm>
 void RV32ZfhInstructionTest::RoundingConversionTestHelper(
     uint32_t float_uint_before, uint16_t half_uint_before,
-    uint32_t &first_expected_fflags, uint32_t float_uint_after,
-    uint16_t half_uint_after, uint32_t &second_expected_fflags) {
+    uint32_t& first_expected_fflags, uint32_t float_uint_after,
+    uint16_t half_uint_after, uint32_t& second_expected_fflags) {
   float input_val;
   HalfFP expected_val;
   HalfFP actual_val;
diff --git a/riscv/test/riscv_zicond_instructions_test.cc b/riscv/test/riscv_zicond_instructions_test.cc
index 576a331..5f45406 100644
--- a/riscv/test/riscv_zicond_instructions_test.cc
+++ b/riscv/test/riscv_zicond_instructions_test.cc
@@ -60,7 +60,7 @@
   template <typename RegisterType>
   typename RegisterType::ValueType GetRegisterValue(
       absl::string_view reg_name) {
-    RegisterType *reg;
+    RegisterType* reg;
     if constexpr (std::is_same_v<RegisterType, RV32Register>) {
       reg = rv32_regs_[reg_name];
     } else {
@@ -72,21 +72,21 @@
   }
 
   template <typename RegisterType>
-  void AppendRegisterOperands(const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    absl::flat_hash_map<std::string, RegisterType *> *regs;
+  void AppendRegisterOperands(const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    absl::flat_hash_map<std::string, RegisterType*>* regs;
     if constexpr (std::is_same_v<RegisterType, RV32Register>) {
       regs = &rv32_regs_;
     } else {
       regs = &rv64_regs_;
     }
     for (auto src : sources) {
-      auto *reg = (*regs)[src];
+      auto* reg = (*regs)[src];
       CHECK_NE(reg, nullptr);
       instruction_->AppendSource(reg->CreateSourceOperand());
     }
     for (auto dest : destinations) {
-      auto *reg = (*regs)[dest];
+      auto* reg = (*regs)[dest];
       CHECK_NE(reg, nullptr);
       instruction_->AppendDestination(reg->CreateDestinationOperand(0));
     }
@@ -97,16 +97,16 @@
       const std::vector<
           std::tuple<std::string, typename RegisterType::ValueType>>
           values) {
-    absl::flat_hash_map<std::string, RegisterType *> *regs;
+    absl::flat_hash_map<std::string, RegisterType*>* regs;
     if constexpr (std::is_same_v<RegisterType, RV32Register>) {
       regs = &rv32_regs_;
     } else {
       regs = &rv64_regs_;
     }
-    for (auto &[reg_name, value] : values) {
-      auto *reg = (*regs)[reg_name];
+    for (auto& [reg_name, value] : values) {
+      auto* reg = (*regs)[reg_name];
       CHECK_NE(reg, nullptr);
-      auto *db =
+      auto* db =
           state_.db_factory()->Allocate<typename RegisterType::ValueType>(1);
       db->template Set<typename RegisterType::ValueType>(0, value);
       reg->SetDataBuffer(db);
@@ -114,13 +114,13 @@
     }
   }
 
-  Instruction *instruction() { return instruction_; }
+  Instruction* instruction() { return instruction_; }
 
  private:
   TestState state_;
-  Instruction *instruction_;
-  absl::flat_hash_map<std::string, RV32Register *> rv32_regs_;
-  absl::flat_hash_map<std::string, RV64Register *> rv64_regs_;
+  Instruction* instruction_;
+  absl::flat_hash_map<std::string, RV32Register*> rv32_regs_;
+  absl::flat_hash_map<std::string, RV64Register*> rv64_regs_;
 };
 
 TEST_F(RiscVZicondInstructionTest, RV32CzeroEqz) {
diff --git a/riscv/test/riscv_zicsr_instructions_test.cc b/riscv/test/riscv_zicsr_instructions_test.cc
index 38f29c4..6aab6e3 100644
--- a/riscv/test/riscv_zicsr_instructions_test.cc
+++ b/riscv/test/riscv_zicsr_instructions_test.cc
@@ -71,25 +71,25 @@
 
   // Appends the source and destination operands for the register names
   // given in the two vectors.
-  void AppendRegisterOperands(Instruction *inst,
-                              const std::vector<std::string> &sources,
-                              const std::vector<std::string> &destinations) {
-    for (auto &reg_name : sources) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+  void AppendRegisterOperands(Instruction* inst,
+                              const std::vector<std::string>& sources,
+                              const std::vector<std::string>& destinations) {
+    for (auto& reg_name : sources) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendSource(reg->CreateSourceOperand());
     }
-    for (auto &reg_name : destinations) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    for (auto& reg_name : destinations) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
       inst->AppendDestination(reg->CreateDestinationOperand(0));
     }
   }
 
   // Appends immediate source operands with the given values.
   template <typename T>
-  void AppendImmediateOperands(Instruction *inst,
-                               const std::vector<T> &values) {
+  void AppendImmediateOperands(Instruction* inst,
+                               const std::vector<T>& values) {
     for (auto value : values) {
-      auto *src = new ImmediateOperand<T>(value);
+      auto* src = new ImmediateOperand<T>(value);
       inst->AppendSource(src);
     }
   }
@@ -98,9 +98,9 @@
   // named register and sets it to the corresponding value.
   template <typename T>
   void SetRegisterValues(const std::vector<std::tuple<std::string, T>> values) {
-    for (auto &[reg_name, value] : values) {
-      auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
-      auto *db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
+    for (auto& [reg_name, value] : values) {
+      auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
+      auto* db = state_->db_factory()->Allocate<RV32Register::ValueType>(1);
       db->Set<T>(0, value);
       reg->SetDataBuffer(db);
       db->DecRef();
@@ -115,14 +115,14 @@
   // Returns the value of the named register.
   template <typename T>
   T GetRegisterValue(absl::string_view reg_name) {
-    auto *reg = state_->GetRegister<RV32Register>(reg_name).first;
+    auto* reg = state_->GetRegister<RV32Register>(reg_name).first;
     return reg->data_buffer()->Get<T>(0);
   }
 
   FlatDemandMemory memory_;
-  RiscV32SimpleCsr *csr_;
-  RiscVState *state_;
-  Instruction *instruction_;
+  RiscV32SimpleCsr* csr_;
+  RiscVState* state_;
+  Instruction* instruction_;
 };
 
 constexpr uint32_t kCsrValue1 = 0xaaaa5555;
@@ -137,7 +137,7 @@
 TEST_F(ZicsrInstructionsTest, RiscVZiCsrrw) {
   auto result = state_->csr_set()->GetCsr(kUScratchValue);
   CHECK_OK(result);
-  auto *csr = result.value();
+  auto* csr = result.value();
   CHECK_NE(csr, nullptr);
   csr->Set(kCsrValue1);
   SetRegisterValues<uint32_t>({{kX1, kCsrValue2}, {kX3, 0}});
@@ -157,7 +157,7 @@
 TEST_F(ZicsrInstructionsTest, RiscVZiCsrrs) {
   auto result = state_->csr_set()->GetCsr(kUScratchValue);
   CHECK_OK(result);
-  auto *csr = result.value();
+  auto* csr = result.value();
   CHECK_NE(csr, nullptr);
   csr->Set(kCsrValue1);
   SetRegisterValues<uint32_t>({{kX1, kCsrValue2}, {kX3, 0}});
@@ -176,7 +176,7 @@
 TEST_F(ZicsrInstructionsTest, RiscVZiCsrrc) {
   auto result = state_->csr_set()->GetCsr(kUScratchValue);
   CHECK_OK(result);
-  auto *csr = result.value();
+  auto* csr = result.value();
   CHECK_NE(csr, nullptr);
   csr->Set(kCsrValue1);
   SetRegisterValues<uint32_t>({{kX1, kCsrValue2}, {kX3, 0}});
@@ -195,7 +195,7 @@
 TEST_F(ZicsrInstructionsTest, RiscVZiCsrrwNr) {
   auto result = state_->csr_set()->GetCsr(kUScratchValue);
   CHECK_OK(result);
-  auto *csr = result.value();
+  auto* csr = result.value();
   CHECK_NE(csr, nullptr);
   csr->Set(kCsrValue1);
   SetRegisterValues<uint32_t>({{kX1, kCsrValue2}, {kX3, 0}});
@@ -214,7 +214,7 @@
 TEST_F(ZicsrInstructionsTest, RiscVZiCsrrNw) {
   auto result = state_->csr_set()->GetCsr(kUScratchValue);
   CHECK_OK(result);
-  auto *csr = result.value();
+  auto* csr = result.value();
   CHECK_NE(csr, nullptr);
   csr->Set(kCsrValue1);
   SetRegisterValues<uint32_t>({{kX1, kCsrValue2}, {kX3, 0}});
diff --git a/riscv/test/zfh_encoding.h b/riscv/test/zfh_encoding.h
index cf875fc..9cb724a 100644
--- a/riscv/test/zfh_encoding.h
+++ b/riscv/test/zfh_encoding.h
@@ -58,7 +58,7 @@
   using XRegister = ::mpact::sim::riscv::RV32Register;
   using SelfEncoding = ZfhEncoding<32>;
   static constexpr int kXLen = 32;
-  static constexpr const char *const *kOpcodeNames =
+  static constexpr const char* const* kOpcodeNames =
       ::mpact::sim::riscv::zfh32::kOpcodeNames;
 };
 
@@ -78,7 +78,7 @@
   using XRegister = ::mpact::sim::riscv::RV64Register;
   using SelfEncoding = ZfhEncoding<64>;
   static constexpr int kXLen = 64;
-  static constexpr const char *const *kOpcodeNames =
+  static constexpr const char* const* kOpcodeNames =
       ::mpact::sim::riscv::zfh64::kOpcodeNames;
 };
 
@@ -98,7 +98,7 @@
   using Extractors = typename ZfhTraits<XLen>::Extractors;
   using XRegister = typename ZfhTraits<XLen>::XRegister;
 
-  explicit ZfhEncoding(RiscVState *state)
+  explicit ZfhEncoding(RiscVState* state)
       : state_(state),
         inst_word_(0),
         opcode_(OpcodeEnum::kNone),
@@ -167,24 +167,24 @@
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  ::mpact::sim::generic::PredicateOperandInterface *GetPredicate(
+  ::mpact::sim::generic::PredicateOperandInterface* GetPredicate(
       SlotEnum, int, OpcodeEnum, PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override {
     return nullptr;
   }
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum opcode,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum opcode,
                                               DestOpEnum dest_op, int dest_no,
                                               int latency) override {
     int index = static_cast<int>(dest_op);
@@ -198,7 +198,7 @@
     return (iter->second)(latency);
   }
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum opcode,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum opcode,
                                     SourceOpEnum source_op,
                                     int source_no) override {
     int index = static_cast<int>(source_op);
@@ -217,25 +217,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -243,8 +243,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 }  // namespace mpact::sim::riscv::zfh
 
diff --git a/riscv/test/zfh_encoding_test.cc b/riscv/test/zfh_encoding_test.cc
index 357375a..737f06b 100644
--- a/riscv/test/zfh_encoding_test.cc
+++ b/riscv/test/zfh_encoding_test.cc
@@ -132,11 +132,11 @@
   static constexpr RiscVXlen rvXLen = RiscVXlen::RV32;
   static constexpr int kXLen = 32;
   static constexpr int slot = static_cast<int>(SlotEnum::kRiscv32Zfh);
-  static constexpr const char *const *kSourceOpNames =
+  static constexpr const char* const* kSourceOpNames =
       ::mpact::sim::riscv::zfh32::kSourceOpNames;
-  static constexpr const char *const *kDestOpNames =
+  static constexpr const char* const* kDestOpNames =
       ::mpact::sim::riscv::zfh32::kDestOpNames;
-  static constexpr const char *const *kComplexResourceNames =
+  static constexpr const char* const* kComplexResourceNames =
       ::mpact::sim::riscv::zfh32::kComplexResourceNames;
 };
 
@@ -152,11 +152,11 @@
   static constexpr RiscVXlen rvXLen = RiscVXlen::RV64;
   static constexpr int kXLen = 64;
   static constexpr int slot = static_cast<int>(SlotEnum::kRiscv64Zfh);
-  static constexpr const char *const *kSourceOpNames =
+  static constexpr const char* const* kSourceOpNames =
       ::mpact::sim::riscv::zfh64::kSourceOpNames;
-  static constexpr const char *const *kDestOpNames =
+  static constexpr const char* const* kDestOpNames =
       ::mpact::sim::riscv::zfh64::kDestOpNames;
-  static constexpr const char *const *kComplexResourceNames =
+  static constexpr const char* const* kComplexResourceNames =
       ::mpact::sim::riscv::zfh64::kComplexResourceNames;
 };
 
@@ -189,8 +189,8 @@
   typename ConfigT::OpcodeEnum GetOpcode();
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  ZfhEncoding<ConfigT::kXLen> *enc_;
+  RiscVState* state_;
+  ZfhEncoding<ConfigT::kXLen>* enc_;
   absl::BitGen gen_;
   typename ConfigT::SlotEnum expected_slot_;
 };
@@ -209,7 +209,7 @@
   using XRegister = typename ConfigT::XRegister;
   using XValue = typename ConfigT::XValue;
   XValue register_value = register_index ? absl::Uniform<XValue>(gen_) : 0;
-  XRegister *rs1_reg;
+  XRegister* rs1_reg;
   std::tie(rs1_reg, std::ignore) = state_->GetRegister<XRegister>(
       absl::StrCat("x", static_cast<uint32_t>(register_index)));
   rs1_reg->data_buffer()->template Set<XValue>(0, register_value);
@@ -254,7 +254,7 @@
   using XValue = typename ConfigT::XValue;
   using XRegister = typename ConfigT::XRegister;
   std::unique_ptr<RegisterDestinationOperand<XRegister>> dst(
-      static_cast<RegisterDestinationOperand<XRegister> *>(enc_->GetDestination(
+      static_cast<RegisterDestinationOperand<XRegister>*>(enc_->GetDestination(
           expected_slot_, 0, opcode_enum, ConfigT::DestOpEnum::kRd, 0, 0)));
   std::unique_ptr<DataBuffer> db(dst->CopyDataBuffer());
   return db->template Get<XValue>(0);
@@ -271,7 +271,7 @@
     uint32_t frd_adjustment = static_cast<uint32_t>(frd_index) << frd_offset;
 
     // Set the register value with a test value.
-    RVFpRegister *frd_reg;
+    RVFpRegister* frd_reg;
     std::tie(frd_reg, std::ignore) =
         state_->GetRegister<RVFpRegister>(absl::StrCat("f", frd_index));
     frd_reg->data_buffer()->Set<uint64_t>(0, expected_value);
@@ -279,7 +279,7 @@
     // Parse the instruction and get the destination operand.
     enc_->ParseInstruction(base_instruction | frd_adjustment);
     std::unique_ptr<RegisterDestinationOperand<RVFpRegister>> dst(
-        static_cast<RegisterDestinationOperand<RVFpRegister> *>(
+        static_cast<RegisterDestinationOperand<RVFpRegister>*>(
             enc_->GetDestination(expected_slot_, 0, opcode_enum,
                                  ConfigT::DestOpEnum::kFrd, 0, 0)));
 
@@ -307,7 +307,7 @@
     RegisterValue expected_value = absl::Uniform<RegisterValue>(gen_);
 
     // Set the register value with a test value.
-    RVFpRegister *frs1_reg;
+    RVFpRegister* frs1_reg;
     std::tie(frs1_reg, std::ignore) =
         state_->GetRegister<RVFpRegister>(absl::StrCat("f", frs1_index));
     frs1_reg->data_buffer()->Set<RegisterValue>(0, expected_value);
@@ -365,7 +365,7 @@
 TYPED_TEST_SUITE(ZfhEncodingTest, MyTypes);
 
 TYPED_TEST(ZfhEncodingTest, SourceOperands) {
-  auto &getters = this->enc_->source_op_getters();
+  auto& getters = this->enc_->source_op_getters();
   for (int i = *TypeParam::SourceOpEnum::kNone;
        i < *TypeParam::SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i))
@@ -375,7 +375,7 @@
 }
 
 TYPED_TEST(ZfhEncodingTest, DestOperands) {
-  auto &getters = this->enc_->dest_op_getters();
+  auto& getters = this->enc_->dest_op_getters();
   for (int i = *TypeParam::DestOpEnum::kNone;
        i < *TypeParam::DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i))
@@ -388,7 +388,7 @@
 // them.
 
 TYPED_TEST(ZfhEncodingTest, ComplexResources) {
-  auto &getters = this->enc_->source_op_getters();
+  auto& getters = this->enc_->source_op_getters();
   for (int i = *TypeParam::ComplexResourceEnum::kNone;
        i < *TypeParam::ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i))
@@ -411,7 +411,7 @@
         (sign ? 0x8000'0000 : 0) | ((expected_imm & 0x0000'07FF) << 20);
     this->enc_->ParseInstruction(kFlh | imm_adjustment);
     std::unique_ptr<ImmediateOperand<int32_t>> src(
-        static_cast<ImmediateOperand<int32_t> *>(this->enc_->GetSource(
+        static_cast<ImmediateOperand<int32_t>*>(this->enc_->GetSource(
             this->expected_slot_, 0, TypeParam::OpcodeEnum::kFlh,
             TypeParam::SourceOpEnum::kIImm12, 0)));
     EXPECT_EQ(src->AsInt32(0), expected_imm);
@@ -451,7 +451,7 @@
                               ((expected_imm & 0x0000'07E0) << 20);
     this->enc_->ParseInstruction(kFsh | imm_adjustment);
     std::unique_ptr<ImmediateOperand<int32_t>> src(
-        static_cast<ImmediateOperand<int32_t> *>(this->enc_->GetSource(
+        static_cast<ImmediateOperand<int32_t>*>(this->enc_->GetSource(
             this->expected_slot_, 0, TypeParam::OpcodeEnum::kFsh,
             TypeParam::SourceOpEnum::kSImm12, 0)));
     EXPECT_EQ(src->AsInt32(0), expected_imm);
@@ -491,14 +491,14 @@
   for (uint32_t rd_index = 1; rd_index < 32; ++rd_index) {
     uint32_t rd_adjustment = rd_index << 7;
     XValue expected_value = absl::Uniform<XValue>(this->gen_);
-    XRegister *rd_reg;
+    XRegister* rd_reg;
     std::tie(rd_reg, std::ignore) =
         this->state_->template GetRegister<XRegister>(
             absl::StrCat("x", rd_index));
     rd_reg->data_buffer()->template Set<XValue>(0, expected_value);
     this->enc_->ParseInstruction(kFmvXh | rd_adjustment);
     std::unique_ptr<RegisterDestinationOperand<XRegister>> dst(
-        static_cast<RegisterDestinationOperand<XRegister> *>(
+        static_cast<RegisterDestinationOperand<XRegister>*>(
             this->enc_->GetDestination(this->expected_slot_, 0,
                                        TypeParam::OpcodeEnum::kFmvXh,
                                        TypeParam::DestOpEnum::kRd, 0, 0)));
diff --git a/riscv/test/zvbb_encoding_test.cc b/riscv/test/zvbb_encoding_test.cc
index 64f7be6..7a477c0 100644
--- a/riscv/test/zvbb_encoding_test.cc
+++ b/riscv/test/zvbb_encoding_test.cc
@@ -80,12 +80,12 @@
   }
 
   FlatDemandMemory memory_;
-  RiscVState *state_;
-  ZVBBEncoding *enc_;
+  RiscVState* state_;
+  ZVBBEncoding* enc_;
 };
 
 TEST_F(ZVBBEncodingTest, SourceOperands) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *SourceOpEnum::kNone; i < *SourceOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
                                      << " (" << kSourceOpNames[i] << ")";
@@ -93,7 +93,7 @@
 }
 
 TEST_F(ZVBBEncodingTest, DestOperands) {
-  auto &getters = enc_->dest_op_getters();
+  auto& getters = enc_->dest_op_getters();
   for (int i = *DestOpEnum::kNone; i < *DestOpEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No dest operand for enum value " << i
                                      << " (" << kDestOpNames[i] << ")";
@@ -101,7 +101,7 @@
 }
 
 TEST_F(ZVBBEncodingTest, SimpleResources) {
-  auto &getters = enc_->simple_resource_getters();
+  auto& getters = enc_->simple_resource_getters();
   for (int i = *SimpleResourceEnum::kNone;
        i < *SimpleResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
@@ -110,7 +110,7 @@
 }
 
 TEST_F(ZVBBEncodingTest, ComplexResources) {
-  auto &getters = enc_->source_op_getters();
+  auto& getters = enc_->source_op_getters();
   for (int i = *ComplexResourceEnum::kNone;
        i < *ComplexResourceEnum::kPastMaxValue; ++i) {
     EXPECT_TRUE(getters.contains(i)) << "No source operand for enum value " << i
diff --git a/riscv/zvbb_encoding.cc b/riscv/zvbb_encoding.cc
index 3ac6038..648a4f2 100644
--- a/riscv/zvbb_encoding.cc
+++ b/riscv/zvbb_encoding.cc
@@ -32,7 +32,7 @@
 
 using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
-ZVBBEncoding::ZVBBEncoding(RiscVState *state)
+ZVBBEncoding::ZVBBEncoding(RiscVState* state)
     : state_(state),
       inst_word_(0),
       opcode_(OpcodeEnum::kNone),
@@ -85,18 +85,18 @@
   format_ = format;
 }
 
-ResourceOperandInterface *ZVBBEncoding::GetComplexResourceOperand(
+ResourceOperandInterface* ZVBBEncoding::GetComplexResourceOperand(
     SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
     int end) {
   return nullptr;
 }
 
-ResourceOperandInterface *ZVBBEncoding::GetSimpleResourceOperand(
-    SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec, int end) {
+ResourceOperandInterface* ZVBBEncoding::GetSimpleResourceOperand(
+    SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec, int end) {
   return nullptr;
 }
 
-DestinationOperandInterface *ZVBBEncoding::GetDestination(SlotEnum, int,
+DestinationOperandInterface* ZVBBEncoding::GetDestination(SlotEnum, int,
                                                           OpcodeEnum opcode,
                                                           DestOpEnum dest_op,
                                                           int dest_no,
@@ -112,7 +112,7 @@
   return (iter->second)(latency);
 }
 
-SourceOperandInterface *ZVBBEncoding::GetSource(SlotEnum, int,
+SourceOperandInterface* ZVBBEncoding::GetSource(SlotEnum, int,
                                                 OpcodeEnum opcode,
                                                 SourceOpEnum source_op,
                                                 int source_no) {
diff --git a/riscv/zvbb_encoding.h b/riscv/zvbb_encoding.h
index bc84053..0330ef7 100644
--- a/riscv/zvbb_encoding.h
+++ b/riscv/zvbb_encoding.h
@@ -36,30 +36,30 @@
 // instructions according to the operand fields in the encoding.
 class ZVBBEncoding : public ZVBBEncodingBase, public RiscVEncodingCommon {
  public:
-  explicit ZVBBEncoding(RiscVState *state);
+  explicit ZVBBEncoding(RiscVState* state);
   ~ZVBBEncoding() override;
 
   void ParseInstruction(uint32_t inst_word);
   OpcodeEnum GetOpcode(SlotEnum, int) override { return opcode_; }
   FormatEnum GetFormat(SlotEnum, int) { return format_; }
 
-  PredicateOperandInterface *GetPredicate(SlotEnum, int, OpcodeEnum,
+  PredicateOperandInterface* GetPredicate(SlotEnum, int, OpcodeEnum,
                                           PredOpEnum) override {
     return nullptr;
   }
 
-  ResourceOperandInterface *GetSimpleResourceOperand(
-      SlotEnum, int, OpcodeEnum, SimpleResourceVector &resource_vec,
+  ResourceOperandInterface* GetSimpleResourceOperand(
+      SlotEnum, int, OpcodeEnum, SimpleResourceVector& resource_vec,
       int end) override;
 
-  ResourceOperandInterface *GetComplexResourceOperand(
+  ResourceOperandInterface* GetComplexResourceOperand(
       SlotEnum, int, OpcodeEnum, ComplexResourceEnum resource, int begin,
       int end) override;
 
-  SourceOperandInterface *GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
+  SourceOperandInterface* GetSource(SlotEnum, int, OpcodeEnum, SourceOpEnum op,
                                     int source_no) override;
 
-  DestinationOperandInterface *GetDestination(SlotEnum, int, OpcodeEnum,
+  DestinationOperandInterface* GetDestination(SlotEnum, int, OpcodeEnum,
                                               DestOpEnum op, int dest_no,
                                               int latency) override;
 
@@ -68,25 +68,25 @@
   }
 
   // Methods inherited from RiscVEncodingCommon.
-  RiscVState *state() const override { return state_; }
-  generic::SimpleResourcePool *resource_pool() override {
+  RiscVState* state() const override { return state_; }
+  generic::SimpleResourcePool* resource_pool() override {
     return resource_pool_;
   }
   uint32_t inst_word() const override { return inst_word_; }
 
-  const SourceOpGetterMap &source_op_getters() { return source_op_getters_; }
-  const DestOpGetterMap &dest_op_getters() { return dest_op_getters_; }
-  const SimpleResourceGetterMap &simple_resource_getters() {
+  const SourceOpGetterMap& source_op_getters() { return source_op_getters_; }
+  const DestOpGetterMap& dest_op_getters() { return dest_op_getters_; }
+  const SimpleResourceGetterMap& simple_resource_getters() {
     return simple_resource_getters_;
   }
-  const ComplexResourceGetterMap &complex_resource_getters() {
+  const ComplexResourceGetterMap& complex_resource_getters() {
     return complex_resource_getters_;
   }
 
  private:
   std::string GetSimpleResourceName(SimpleResourceEnum resource_enum);
 
-  RiscVState *state_;
+  RiscVState* state_;
   uint32_t inst_word_;
   OpcodeEnum opcode_;
   FormatEnum format_;
@@ -94,8 +94,8 @@
   DestOpGetterMap dest_op_getters_;
   SimpleResourceGetterMap simple_resource_getters_;
   ComplexResourceGetterMap complex_resource_getters_;
-  generic::SimpleResourceDelayLine *resource_delay_line_ = nullptr;
-  generic::SimpleResourcePool *resource_pool_ = nullptr;
+  generic::SimpleResourceDelayLine* resource_delay_line_ = nullptr;
+  generic::SimpleResourcePool* resource_pool_ = nullptr;
 };
 
 }  // namespace mpact::sim::riscv::zvbb