diff --git a/vmvx_ukernel/mmt4d_tile.c b/vmvx_ukernel/mmt4d_tile.c
index 10105b6..28d8145 100644
--- a/vmvx_ukernel/mmt4d_tile.c
+++ b/vmvx_ukernel/mmt4d_tile.c
@@ -43,8 +43,7 @@
 // RVV implementation of matmul tile, i8*i8->i32 case.
 static void iree_uk_mmt4d_tile_i8i8i32_rvv(
     void* out_tile_untyped, const void* lhs_panel_untyped,
-    const void* rhs_panel_untyped, iree_uk_int32_t K, iree_uk_uint32_t flags,
-    const iree_uk_mmt4d_params_t* params) {
+    const void* rhs_panel_untyped, const iree_uk_mmt4d_params_t* params) {
   iree_uk_int32_t* out_tile = out_tile_untyped;
   const iree_uk_int8_t* lhs_panel = lhs_panel_untyped;
   const iree_uk_int8_t* rhs_panel = rhs_panel_untyped;
@@ -52,11 +51,11 @@
   iree_uk_int16_t N0 = params->N0;
   iree_uk_int16_t K0 = params->K0;
   // Initialize the accumulator tile.
-  if (!(flags & IREE_UK_FLAG_MMT4D_ACCUMULATE)) {
+  if (!(params->flags & IREE_UK_FLAG_MMT4D_ACCUMULATE)) {
     memset(out_tile, 0, M0 * N0 * sizeof(iree_uk_int32_t));
   }
   // Accumulation loop.
-  for (iree_uk_index_t k = 0; k < K; ++k) {
+  for (iree_uk_index_t k = 0; k < params->K; ++k) {
     for (iree_uk_index_t i0 = 0; i0 < M0; ++i0) {
       for (iree_uk_index_t j0 = 0; j0 < N0; ++j0) {
         out_tile[i0 * N0 + j0] +=
@@ -71,8 +70,7 @@
 // Generic implementation of matmul tile, f32*f32->f32 case.
 static void iree_uk_mmt4d_tile_f32f32f32_generic(
     void* out_tile_untyped, const void* lhs_panel_untyped,
-    const void* rhs_panel_untyped, iree_uk_int32_t K, iree_uk_uint32_t flags,
-    const iree_uk_mmt4d_params_t* params) {
+    const void* rhs_panel_untyped, const iree_uk_mmt4d_params_t* params) {
   float* out_tile = out_tile_untyped;
   const float* lhs_panel = lhs_panel_untyped;
   const float* rhs_panel = rhs_panel_untyped;
@@ -81,13 +79,13 @@
   iree_uk_int16_t K0 = params->K0;
   // Initialize the local accumulator tile.
   float acc[iree_uk_mmt4d_tile_generic_max_bytes / sizeof(*out_tile)];
-  if (flags & IREE_UK_FLAG_MMT4D_ACCUMULATE) {
+  if (params->flags & IREE_UK_FLAG_MMT4D_ACCUMULATE) {
     for (int i = 0; i < M0 * N0; ++i) acc[i] = out_tile[i];
   } else {
     for (int i = 0; i < M0 * N0; ++i) acc[i] = 0;
   }
   // Accumulation loop.
-  for (iree_uk_index_t k = 0; k < K; ++k) {
+  for (iree_uk_index_t k = 0; k < params->K; ++k) {
     for (iree_uk_index_t i0 = 0; i0 < M0; ++i0) {
       for (iree_uk_index_t j0 = 0; j0 < N0; ++j0) {
         for (iree_uk_index_t k0 = 0; k0 < K0; ++k0) {
