No public description PiperOrigin-RevId: 559878410
diff --git a/sim/kelvin_memory.isa b/sim/kelvin_memory.isa index bc83d3e..7c0c9c7 100644 --- a/sim/kelvin_memory.isa +++ b/sim/kelvin_memory.isa
@@ -503,7 +503,7 @@ // vcget vcget{: : vd}, disasm: "vcget", "%vd", - semfunc: "absl::bind_front(&KelvinVcGet)"; + semfunc: "&KelvinVcGet"; // acset/actr/adwinit acset{: vs1 : vd},
diff --git a/sim/kelvin_state.cc b/sim/kelvin_state.cc index c1d4c8b..7e800cc 100644 --- a/sim/kelvin_state.cc +++ b/sim/kelvin_state.cc
@@ -21,7 +21,7 @@ : mpact::sim::riscv::RiscVState(id, xlen, memory, atomic_memory) { set_vector_register_width(kVectorRegisterWidth); for (int i = 0; i < acc_register_.size(); ++i) { - acc_register_.at(i).fill(0); + acc_register_[i].fill(0); } }
diff --git a/sim/kelvin_state.h b/sim/kelvin_state.h index b323b01..f7571dd 100644 --- a/sim/kelvin_state.h +++ b/sim/kelvin_state.h
@@ -47,7 +47,7 @@ void set_vector_length(uint32_t length) { vector_length_ = length; } uint32_t vector_length() const { return vector_length_; } - AccArrayType *acc_vec(int index) { return &(acc_register_.at(index)); } + AccArrayType *acc_vec(int index) { return &(acc_register_[index]); } AccArrayTemplate<AccArrayType> acc_register() const { return acc_register_; } void SetLogArgs(std::any data) { log_args_.emplace_back(std::move(data)); }
diff --git a/sim/kelvin_vector_memory_instructions.cc b/sim/kelvin_vector_memory_instructions.cc index 67c0966..fd1f099 100644 --- a/sim/kelvin_vector_memory_instructions.cc +++ b/sim/kelvin_vector_memory_instructions.cc
@@ -336,7 +336,7 @@ absl::Span<uint32_t> dest_span = dest_db->Get<uint32_t>(); auto *acc_vec = state->acc_vec(op_index); for (int i = 0; i < dest_span.size(); ++i) { - dest_span[i] = acc_vec->data()[i]; + dest_span[i] = (*acc_vec)[i]; } acc_vec->fill(0); dest_db->Submit(); @@ -357,10 +357,10 @@ for (int i = 0; i < source_span.size(); ++i) { if (is_transpose) { auto *acc_vec = state->acc_vec(i); - acc_vec->at(op_index) = source_span[i]; + (*acc_vec)[op_index] = source_span[i]; } else { auto *acc_vec = state->acc_vec(op_index); - acc_vec->at(i) = source_span[i]; + (*acc_vec)[i] = source_span[i]; } } }
diff --git a/sim/test/kelvin_vector_memory_instructions_test.cc b/sim/test/kelvin_vector_memory_instructions_test.cc index 82d986c..e11fe0e 100644 --- a/sim/test/kelvin_vector_memory_instructions_test.cc +++ b/sim/test/kelvin_vector_memory_instructions_test.cc
@@ -540,9 +540,8 @@ auto vd_name = absl::StrCat("v", kVd + i); auto vs_name = absl::StrCat("v", kVs + i); SetVectorRegisterValues<uint32_t>( - {{vd_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}}); - SetVectorRegisterValues<uint32_t>( - {{vs_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}}); + {{vd_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}, + {vs_name, vd_span.subspan(kVLenInWord * i, kVLenInWord)}}); } auto instruction = CreateInstruction(); AppendVectorRegisterOperands(instruction.get(), kVLenInWord, @@ -560,12 +559,12 @@ element_index++) { if (is_transpose) { auto *acc_vec = state_->acc_vec(element_index); - EXPECT_EQ(vreg_span[element_index], acc_vec->at(i)) + EXPECT_EQ(vreg_span[element_index], (*acc_vec)[i]) << absl::StrCat("vreg[", vreg_num, "][", element_index, "] != acc[", element_index, "][", i, "]"); } else { auto *acc_vec = state_->acc_vec(i); - EXPECT_EQ(vreg_span[element_index], acc_vec->at(element_index)) + EXPECT_EQ(vreg_span[element_index], (*acc_vec)[element_index]) << absl::StrCat("vreg[", vreg_num, "][", element_index, "] != acc[", i, "][", element_index, "]"); }