No public description PiperOrigin-RevId: 557269617
diff --git a/sim/test/kelvin_vector_instructions_test.cc b/sim/test/kelvin_vector_instructions_test.cc index 5dd7bb6..5e92867 100644 --- a/sim/test/kelvin_vector_instructions_test.cc +++ b/sim/test/kelvin_vector_instructions_test.cc
@@ -105,29 +105,16 @@ void KelvinVectorBinaryOpHelper(absl::string_view name) { const auto name_with_type = absl::StrCat(name, KelvinTestTypeSuffix<TD>()); - // Vector OP type vector-vector. - BinaryOpTestHelper<TD, TS1, TS2>( - absl::bind_front(F<TD, TS1, TS2>::KelvinOp, kNonScalar, kNonStripmine), - absl::StrCat(name_with_type, "VV"), kNonScalar, kNonStripmine, - F<TD, TS1, TS2>::Op); - - // Vector OP type vector-vector stripmined. - BinaryOpTestHelper<TD, TS1, TS2>( - absl::bind_front(F<TD, TS1, TS2>::KelvinOp, kNonScalar, kIsStripmine), - absl::StrCat(name_with_type, "VVM"), kNonScalar, kIsStripmine, - F<TD, TS1, TS2>::Op); - - // Vector OP type vector-scalar. - BinaryOpTestHelper<TD, TS1, TS2>( - absl::bind_front(F<TD, TS1, TS2>::KelvinOp, kIsScalar, kNonStripmine), - absl::StrCat(name_with_type, "VX"), kIsScalar, kNonStripmine, - F<TD, TS1, TS2>::Op); - - // Vector OP type vector-scalar stripmined. - BinaryOpTestHelper<TD, TS1, TS2>( - absl::bind_front(F<TD, TS1, TS2>::KelvinOp, kIsScalar, kIsStripmine), - absl::StrCat(name_with_type, "VXM"), kIsScalar, kIsStripmine, - F<TD, TS1, TS2>::Op); + // Test [VV, VX].{M} variants + for (auto scalar : {kNonScalar, kIsScalar}) { + for (auto stripmine : {kNonStripmine, kIsStripmine}) { + auto op_name = absl::StrCat(name_with_type, "V", scalar ? "X" : "V", + stripmine ? "M" : ""); + BinaryOpTestHelper<TD, TS1, TS2>( + absl::bind_front(F<TD, TS1, TS2>::KelvinOp, scalar, stripmine), + op_name, scalar, stripmine, F<TD, TS1, TS2>::Op); + } + } } template <template <typename, typename, typename> class F, typename TD, @@ -276,29 +263,17 @@ void KelvinShuffleOpHelper(absl::string_view name, bool widen_dst) { const auto name_with_type = absl::StrCat(name, KelvinTestTypeSuffix<T>()); - // Vector OP type vector-vector. - BinaryOpTestHelper<T, T, T>( - absl::bind_front(F<T>::KelvinOp, kNonScalar, kNonStripmine), - absl::StrCat(name_with_type, "VV"), kNonScalar, kNonStripmine, F<T>::Op, - F<T>::kArgsGetter, kNonHalftypeOp, kNonVmvpOp, widen_dst); - - // Vector OP type vector-vector stripmined. - BinaryOpTestHelper<T, T, T>( - absl::bind_front(F<T>::KelvinOp, kNonScalar, kIsStripmine), - absl::StrCat(name_with_type, "VVM"), kNonScalar, kIsStripmine, F<T>::Op, - F<T>::kArgsGetter, kNonHalftypeOp, kNonVmvpOp, widen_dst); - - // Vector OP type vector-scalar. - BinaryOpTestHelper<T, T, T>( - absl::bind_front(F<T>::KelvinOp, kIsScalar, kNonStripmine), - absl::StrCat(name_with_type, "VX"), kIsScalar, kNonStripmine, F<T>::Op, - F<T>::kArgsGetter, kNonHalftypeOp, kNonVmvpOp, widen_dst); - - // Vector OP type vector-scalar stripmined. - BinaryOpTestHelper<T, T, T>( - absl::bind_front(F<T>::KelvinOp, kIsScalar, kIsStripmine), - absl::StrCat(name_with_type, "VXM"), kIsScalar, kIsStripmine, F<T>::Op, - F<T>::kArgsGetter, kNonHalftypeOp, kNonVmvpOp, widen_dst); + // Test [VV, VX].{M} variants. + for (auto scalar : {kNonScalar, kIsScalar}) { + for (auto stripmine : {kNonStripmine, kIsStripmine}) { + auto op_name = absl::StrCat(name_with_type, "V", scalar ? "X" : "V", + stripmine ? "M" : ""); + BinaryOpTestHelper<T, T, T>( + absl::bind_front(F<T>::KelvinOp, scalar, stripmine), op_name, + scalar, stripmine, F<T>::Op, F<T>::kArgsGetter, kNonHalftypeOp, + kNonVmvpOp, widen_dst); + } + } } template <template <typename> class F, typename T, typename TNext1,