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,