Rename F32/U8 output params to minmax params

PiperOrigin-RevId: 305589183
diff --git a/src/add-nc.c b/src/add-nc.c
index 277369b..1ec6cb5 100644
--- a/src/add-nc.c
+++ b/src/add-nc.c
@@ -232,7 +232,7 @@
   add_op->input_pixel_stride = a_stride;
   add_op->input2_pixel_stride = b_stride;
   add_op->output_pixel_stride = sum_stride;
-  add_op->f32_output_params = xnn_init_f32_output_params(sum_min, sum_max);
+  add_op->f32_minmax_params = xnn_init_f32_minmax_params(sum_min, sum_max);
 
   add_op->type = xnn_operator_type_add_nc_f32;
   add_op->ukernel.type = xnn_ukernel_type_add;
@@ -344,7 +344,7 @@
       .a = a,
       .b = b,
       .y = sum,
-      .params.f32 = add_op->f32_output_params,
+      .params.f32 = add_op->f32_minmax_params,
       .ukernel = xnn_params.f32.vadd.op_ukernel,
     };
     add_op->compute.type = xnn_parallelization_type_1d_tile_1d;
@@ -360,7 +360,7 @@
       .y = sum,
       .y_stride = sum_stride * sizeof(float),
       .n = channels * sizeof(float),
-      .params.f32 = add_op->f32_output_params,
+      .params.f32 = add_op->f32_minmax_params,
       .ukernel = xnn_params.f32.vadd.op_ukernel,
     };
     add_op->compute.type = xnn_parallelization_type_1d_tile_1d;
diff --git a/src/argmax-pooling-nhwc.c b/src/argmax-pooling-nhwc.c
index 45d3725..5a2980e 100644
--- a/src/argmax-pooling-nhwc.c
+++ b/src/argmax-pooling-nhwc.c
@@ -149,7 +149,7 @@
   argmax_pooling_op->input_pixel_stride = input_pixel_stride;
   argmax_pooling_op->output_pixel_stride = output_pixel_stride;
 
-  argmax_pooling_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  argmax_pooling_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   argmax_pooling_op->type = xnn_operator_type_argmax_pooling_nhwc_f32;
   argmax_pooling_op->ukernel.type = xnn_ukernel_type_argmax_pooling;
@@ -265,7 +265,7 @@
     .channels = channels,
     .input_increment = (pooling_height * step_width - multipass_adjustment) * sizeof(void*),
     .output_increment = output_width_stride - channels * sizeof(float),
-    .params.f32 = argmax_pooling_op->f32_output_params,
+    .params.f32 = argmax_pooling_op->f32_minmax_params,
   };
   argmax_pooling_op->compute.type = xnn_parallelization_type_2d;
   argmax_pooling_op->compute.range[0] = batch_size;
diff --git a/src/average-pooling-nhwc.c b/src/average-pooling-nhwc.c
index dbccde2..cdd0d63 100644
--- a/src/average-pooling-nhwc.c
+++ b/src/average-pooling-nhwc.c
@@ -370,8 +370,8 @@
     xnn_init_f32_avgpool_params(1.0f / (float) pooling_size, output_min, output_max);
   const bool tf_same_padding = (flags & XNN_FLAG_TENSORFLOW_SAME_PADDING) != 0;
   if (any_padding || tf_same_padding) {
-    average_pooling_op->f32_output_params =
-      xnn_init_f32_output_params(output_min, output_max);
+    average_pooling_op->f32_minmax_params =
+      xnn_init_f32_minmax_params(output_min, output_max);
     average_pooling_op->ukernel.type = xnn_ukernel_type_pixelwise_average_pooling;
   } else {
     average_pooling_op->ukernel.type = xnn_ukernel_type_average_pooling;
@@ -699,8 +699,8 @@
     &xnn_params.f32.avgpool,
     &xnn_params.f32.pavgpool,
     &xnn_params.f32.gavgpool,
-    is_pixelwise ? (const void*) &average_pooling_op->f32_output_params : (const void*) &average_pooling_op->f32_avgpool_params,
-    is_pixelwise ? sizeof(average_pooling_op->f32_output_params) : sizeof(average_pooling_op->f32_avgpool_params),
+    is_pixelwise ? (const void*) &average_pooling_op->f32_minmax_params : (const void*) &average_pooling_op->f32_avgpool_params,
+    is_pixelwise ? sizeof(average_pooling_op->f32_minmax_params) : sizeof(average_pooling_op->f32_avgpool_params),
     &average_pooling_op->f32_avgpool_params,
     sizeof(average_pooling_op->f32_avgpool_params),
     pthreadpool_get_threads_count(threadpool),
diff --git a/src/binary-elementwise-nd.c b/src/binary-elementwise-nd.c
index c3161b6..efae360 100644
--- a/src/binary-elementwise-nd.c
+++ b/src/binary-elementwise-nd.c
@@ -61,7 +61,7 @@
     goto error;
   }
 
-  binary_elementwise_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  binary_elementwise_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   binary_elementwise_op->type = operator_type;
   binary_elementwise_op->ukernel.type = xnn_ukernel_type_binary_elementwise;
@@ -260,7 +260,7 @@
     .b = input2,
     .y = output,
     .elements = compressed_output_shape[0] * sizeof(float),
-    .params.f32 = binary_elementwise_op->f32_output_params,
+    .params.f32 = binary_elementwise_op->f32_minmax_params,
   };
   const size_t* compressed_a_shape = compressed_input1_shape;
   const size_t* compressed_b_shape = compressed_input2_shape;
diff --git a/src/clamp-nc.c b/src/clamp-nc.c
index 97c1f74..02a1f65 100644
--- a/src/clamp-nc.c
+++ b/src/clamp-nc.c
@@ -78,7 +78,7 @@
   clamp_op->channels = channels;
   clamp_op->input_pixel_stride = input_stride;
   clamp_op->output_pixel_stride = output_stride;
-  clamp_op->u8_output_params = xnn_init_u8_output_params(output_min, output_max);
+  clamp_op->u8_minmax_params = xnn_init_u8_minmax_params(output_min, output_max);
 
   clamp_op->type = xnn_operator_type_clamp_nc_u8;
   clamp_op->ukernel.type = xnn_ukernel_type_clamp;
@@ -164,7 +164,7 @@
   clamp_op->channels = channels;
   clamp_op->input_pixel_stride = input_stride;
   clamp_op->output_pixel_stride = output_stride;
-  clamp_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  clamp_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   clamp_op->type = xnn_operator_type_clamp_nc_f32;
   clamp_op->ukernel.type = xnn_ukernel_type_clamp;
@@ -213,7 +213,7 @@
       .y = output,
       .y_stride = output_stride * sizeof(uint8_t),
       .ukernel = xnn_params.u8.clamp,
-      .params.u8_output = clamp_op->u8_output_params,
+      .params.u8_output = clamp_op->u8_minmax_params,
     };
     clamp_op->compute.type = xnn_parallelization_type_1d_tile_1d;
     clamp_op->compute.task_1d_tile_1d = (pthreadpool_task_1d_tile_1d_t) xnn_compute_univector_contiguous;
@@ -227,7 +227,7 @@
       .y = output,
       .y_stride = output_stride * sizeof(uint8_t),
       .ukernel = xnn_params.u8.clamp,
-      .params.u8_output = clamp_op->u8_output_params,
+      .params.u8_output = clamp_op->u8_minmax_params,
     };
     clamp_op->compute.type = xnn_parallelization_type_1d_tile_1d;
     clamp_op->compute.task_1d_tile_1d = (pthreadpool_task_1d_tile_1d_t) xnn_compute_univector_strided;
@@ -273,7 +273,7 @@
       .y = output,
       .y_stride = output_stride * sizeof(float),
       .ukernel = xnn_params.f32.clamp,
-      .params.f32_output = clamp_op->f32_output_params,
+      .params.f32_output = clamp_op->f32_minmax_params,
     };
     clamp_op->compute.type = xnn_parallelization_type_1d_tile_1d;
     clamp_op->compute.task_1d_tile_1d = (pthreadpool_task_1d_tile_1d_t) xnn_compute_univector_contiguous;
@@ -287,7 +287,7 @@
       .y = output,
       .y_stride = output_stride * sizeof(float),
       .ukernel = xnn_params.f32.clamp,
-      .params.f32_output = clamp_op->f32_output_params,
+      .params.f32_output = clamp_op->f32_minmax_params,
     };
     clamp_op->compute.type = xnn_parallelization_type_1d_tile_1d;
     clamp_op->compute.task_1d_tile_1d = (pthreadpool_task_1d_tile_1d_t) xnn_compute_univector_strided;
diff --git a/src/convolution-nchw.c b/src/convolution-nchw.c
index 18c6d32..2d4f2e9 100644
--- a/src/convolution-nchw.c
+++ b/src/convolution-nchw.c
@@ -452,7 +452,7 @@
   if (ukernel_type == xnn_ukernel_type_dwconv) {
     convolution_op->f32_spchw_params = xnn_init_f32_spchw_params(0, output_min, output_max);
   } else {
-    convolution_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+    convolution_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
   }
 
   convolution_op->type = xnn_operator_type_convolution_nchw_f32;
@@ -481,7 +481,7 @@
   uint32_t log2_filter_element_size,
   uint32_t bias_element_size,
   uint32_t log2_output_element_size,
-  const void* output_params,
+  const void* minmax_params,
   const void* spchw_params,
   size_t num_threads)
 {
@@ -586,7 +586,7 @@
           .batched_c_stride = output_batch_stride << log2_output_element_size,
           .ukernel = convolution_op->ukernel.spmm.function,
       };
-      memcpy(&convolution_op->context.spmm.params, output_params, sizeof(convolution_op->context.spmm.params));
+      memcpy(&convolution_op->context.spmm.params, minmax_params, sizeof(convolution_op->context.spmm.params));
 
       const size_t mr = convolution_op->ukernel.spmm.mr;
       size_t mc = input_size;
@@ -632,7 +632,7 @@
         .output_channel_stride = output_height * output_width << log2_output_element_size,
         .hwc2spchw_ukernel = convolution_op->ukernel.dconv2d.hwc2spchw_function,
       };
-      memcpy(&convolution_op->context.dconv2d.params, output_params, sizeof(convolution_op->context.dconv2d.params));
+      memcpy(&convolution_op->context.dconv2d.params, minmax_params, sizeof(convolution_op->context.dconv2d.params));
 
       size_t output_height_slice = output_height;
       const size_t output_height_tile = convolution_op->ukernel.dconv2d.output_height_tile;
@@ -714,7 +714,7 @@
     2 /* log2(sizeof(filter element)) = log2(sizeof(float)) */,
     sizeof(float) /* sizeof(bias element) */,
     2 /* log2(sizeof(output element)) = log2(sizeof(float)) */,
-    &convolution_op->f32_output_params,
+    &convolution_op->f32_minmax_params,
     &convolution_op->f32_spchw_params,
     pthreadpool_get_threads_count(threadpool));
 }
diff --git a/src/convolution-nhwc.c b/src/convolution-nhwc.c
index ad60b3b..e0d73b3 100644
--- a/src/convolution-nhwc.c
+++ b/src/convolution-nhwc.c
@@ -698,7 +698,7 @@
   convolution_op->input_pixel_stride = input_pixel_stride;
   convolution_op->output_pixel_stride = output_pixel_stride;
 
-  convolution_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  convolution_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   convolution_op->type = xnn_operator_type_convolution_nhwc_f32;
   convolution_op->ukernel.type = ukernel_type;
@@ -1132,6 +1132,6 @@
     2 /* log2(sizeof(filter element)) = log2(sizeof(float)) */,
     sizeof(float) /* sizeof(bias element) */,
     2 /* log2(sizeof(output element)) = log2(sizeof(float)) */,
-    &convolution_op->f32_output_params,
+    &convolution_op->f32_minmax_params,
     pthreadpool_get_threads_count(threadpool));
 }
diff --git a/src/deconvolution-nhwc.c b/src/deconvolution-nhwc.c
index c23c0cb..51323aa 100644
--- a/src/deconvolution-nhwc.c
+++ b/src/deconvolution-nhwc.c
@@ -526,7 +526,7 @@
   deconvolution_op->input_pixel_stride = input_pixel_stride;
   deconvolution_op->output_pixel_stride = output_pixel_stride;
 
-  deconvolution_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  deconvolution_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   deconvolution_op->type = xnn_operator_type_deconvolution_nhwc_f32;
   deconvolution_op->ukernel.type = ukernel_type;
@@ -969,6 +969,6 @@
     2 /* log2(sizeof(filter element)) = log2(sizeof(float)) */,
     sizeof(float) /* sizeof(bias element) */,
     2 /* log2(sizeof(output element)) = log2(sizeof(float)) */,
-    &deconvolution_op->f32_output_params,
+    &deconvolution_op->f32_minmax_params,
     pthreadpool_get_threads_count(threadpool));
 }
diff --git a/src/f32-argmaxpool/4x-psimd-c4.c b/src/f32-argmaxpool/4x-psimd-c4.c
index 197ff72..d3a10a1 100644
--- a/src/f32-argmaxpool/4x-psimd-c4.c
+++ b/src/f32-argmaxpool/4x-psimd-c4.c
@@ -20,7 +20,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/4x-scalar-c1.c b/src/f32-argmaxpool/4x-scalar-c1.c
index 999ff5e..a1e4175 100644
--- a/src/f32-argmaxpool/4x-scalar-c1.c
+++ b/src/f32-argmaxpool/4x-scalar-c1.c
@@ -19,7 +19,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/4x-sse2-c4.c b/src/f32-argmaxpool/4x-sse2-c4.c
index 14051c8..5b86992 100644
--- a/src/f32-argmaxpool/4x-sse2-c4.c
+++ b/src/f32-argmaxpool/4x-sse2-c4.c
@@ -20,7 +20,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9p8x-psimd-c4.c b/src/f32-argmaxpool/9p8x-psimd-c4.c
index 74c6cd3..388fda2 100644
--- a/src/f32-argmaxpool/9p8x-psimd-c4.c
+++ b/src/f32-argmaxpool/9p8x-psimd-c4.c
@@ -22,7 +22,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9p8x-scalar-c1.c b/src/f32-argmaxpool/9p8x-scalar-c1.c
index 10bb965..6302921 100644
--- a/src/f32-argmaxpool/9p8x-scalar-c1.c
+++ b/src/f32-argmaxpool/9p8x-scalar-c1.c
@@ -21,7 +21,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9p8x-sse2-c4.c b/src/f32-argmaxpool/9p8x-sse2-c4.c
index 30a3443..794c0db 100644
--- a/src/f32-argmaxpool/9p8x-sse2-c4.c
+++ b/src/f32-argmaxpool/9p8x-sse2-c4.c
@@ -22,7 +22,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9x-psimd-c4.c b/src/f32-argmaxpool/9x-psimd-c4.c
index 4b642d5..3c89c14 100644
--- a/src/f32-argmaxpool/9x-psimd-c4.c
+++ b/src/f32-argmaxpool/9x-psimd-c4.c
@@ -20,7 +20,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9x-scalar-c1.c b/src/f32-argmaxpool/9x-scalar-c1.c
index 7324e39..b07b69f 100644
--- a/src/f32-argmaxpool/9x-scalar-c1.c
+++ b/src/f32-argmaxpool/9x-scalar-c1.c
@@ -19,7 +19,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-argmaxpool/9x-sse2-c4.c b/src/f32-argmaxpool/9x-sse2-c4.c
index c0d2075..b9c3b33 100644
--- a/src/f32-argmaxpool/9x-sse2-c4.c
+++ b/src/f32-argmaxpool/9x-sse2-c4.c
@@ -20,7 +20,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(pooling_elements != 0);
diff --git a/src/f32-clamp/avx.c.in b/src/f32-clamp/avx.c.in
index a85388a..6440477 100644
--- a/src/f32-clamp/avx.c.in
+++ b/src/f32-clamp/avx.c.in
@@ -20,7 +20,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/avx512f.c.in b/src/f32-clamp/avx512f.c.in
index 8e6d613..c1b5930 100644
--- a/src/f32-clamp/avx512f.c.in
+++ b/src/f32-clamp/avx512f.c.in
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/avx-x16.c b/src/f32-clamp/gen/avx-x16.c
index 6ce5716..cdcdbf1 100644
--- a/src/f32-clamp/gen/avx-x16.c
+++ b/src/f32-clamp/gen/avx-x16.c
@@ -21,7 +21,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/avx-x8.c b/src/f32-clamp/gen/avx-x8.c
index ff6a936..34935e4 100644
--- a/src/f32-clamp/gen/avx-x8.c
+++ b/src/f32-clamp/gen/avx-x8.c
@@ -21,7 +21,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/avx512f-x16.c b/src/f32-clamp/gen/avx512f-x16.c
index a381b5c..1a706a6 100644
--- a/src/f32-clamp/gen/avx512f-x16.c
+++ b/src/f32-clamp/gen/avx512f-x16.c
@@ -20,7 +20,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/avx512f-x32.c b/src/f32-clamp/gen/avx512f-x32.c
index c9aab51..9a5d77c 100644
--- a/src/f32-clamp/gen/avx512f-x32.c
+++ b/src/f32-clamp/gen/avx512f-x32.c
@@ -20,7 +20,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/neon-x4.c b/src/f32-clamp/gen/neon-x4.c
index 58b8bf2..882d2e7 100644
--- a/src/f32-clamp/gen/neon-x4.c
+++ b/src/f32-clamp/gen/neon-x4.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/neon-x8.c b/src/f32-clamp/gen/neon-x8.c
index bf32951..2c73da2 100644
--- a/src/f32-clamp/gen/neon-x8.c
+++ b/src/f32-clamp/gen/neon-x8.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/psimd-x4.c b/src/f32-clamp/gen/psimd-x4.c
index dad1abc..99becf4 100644
--- a/src/f32-clamp/gen/psimd-x4.c
+++ b/src/f32-clamp/gen/psimd-x4.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/psimd-x8.c b/src/f32-clamp/gen/psimd-x8.c
index 284660c..43e0149 100644
--- a/src/f32-clamp/gen/psimd-x8.c
+++ b/src/f32-clamp/gen/psimd-x8.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/scalar-x1.c b/src/f32-clamp/gen/scalar-x1.c
index a7bb9ca..9067b89 100644
--- a/src/f32-clamp/gen/scalar-x1.c
+++ b/src/f32-clamp/gen/scalar-x1.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/scalar-x2.c b/src/f32-clamp/gen/scalar-x2.c
index af586cc..ffeb06e 100644
--- a/src/f32-clamp/gen/scalar-x2.c
+++ b/src/f32-clamp/gen/scalar-x2.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/scalar-x4.c b/src/f32-clamp/gen/scalar-x4.c
index 9b76742..96fdcce 100644
--- a/src/f32-clamp/gen/scalar-x4.c
+++ b/src/f32-clamp/gen/scalar-x4.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/sse-x4.c b/src/f32-clamp/gen/sse-x4.c
index 34f3f1f..eadcadb 100644
--- a/src/f32-clamp/gen/sse-x4.c
+++ b/src/f32-clamp/gen/sse-x4.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/sse-x8.c b/src/f32-clamp/gen/sse-x8.c
index 191b59e..0cdf641 100644
--- a/src/f32-clamp/gen/sse-x8.c
+++ b/src/f32-clamp/gen/sse-x8.c
@@ -19,7 +19,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/wasm-x1.c b/src/f32-clamp/gen/wasm-x1.c
index 370f54f..346faf0 100644
--- a/src/f32-clamp/gen/wasm-x1.c
+++ b/src/f32-clamp/gen/wasm-x1.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/wasm-x2.c b/src/f32-clamp/gen/wasm-x2.c
index b373803..89def95 100644
--- a/src/f32-clamp/gen/wasm-x2.c
+++ b/src/f32-clamp/gen/wasm-x2.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/gen/wasm-x4.c b/src/f32-clamp/gen/wasm-x4.c
index 0917a52..ce2c54c 100644
--- a/src/f32-clamp/gen/wasm-x4.c
+++ b/src/f32-clamp/gen/wasm-x4.c
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/neon.c.in b/src/f32-clamp/neon.c.in
index 99c8bb4..9188314 100644
--- a/src/f32-clamp/neon.c.in
+++ b/src/f32-clamp/neon.c.in
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/psimd.c.in b/src/f32-clamp/psimd.c.in
index 0e963e1..42c8870 100644
--- a/src/f32-clamp/psimd.c.in
+++ b/src/f32-clamp/psimd.c.in
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/scalar.c.in b/src/f32-clamp/scalar.c.in
index 46f63bb..24a73a6 100644
--- a/src/f32-clamp/scalar.c.in
+++ b/src/f32-clamp/scalar.c.in
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-clamp/sse.c.in b/src/f32-clamp/sse.c.in
index 5592c7b..395d802 100644
--- a/src/f32-clamp/sse.c.in
+++ b/src/f32-clamp/sse.c.in
@@ -18,7 +18,7 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c b/src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c
index 6ba6916..b29da03 100644
--- a/src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c
+++ b/src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c
@@ -22,7 +22,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_width_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c b/src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c
index 9a62d7e..480aa6c 100644
--- a/src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c
+++ b/src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c
@@ -24,7 +24,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_width_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c b/src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c
index 38450a9..02102b4 100644
--- a/src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c
+++ b/src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c
@@ -22,7 +22,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_width_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c b/src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c
index 98fa7d8..d296b45 100644
--- a/src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c
+++ b/src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c
@@ -24,7 +24,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_width_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c b/src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c
index d9eeafc..6ed30ae 100644
--- a/src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c
+++ b/src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c
@@ -24,7 +24,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_channel_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c b/src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c
index ac16e35..d601c8c 100644
--- a/src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c
+++ b/src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c
@@ -22,7 +22,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_channel_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(input_width != 0);
   assert(output_y_end > output_y_start);
diff --git a/src/f32-dwconv/gen/up16x25-avx-acc2.c b/src/f32-dwconv/gen/up16x25-avx-acc2.c
index dd5a4e9..ec74250 100644
--- a/src/f32-dwconv/gen/up16x25-avx-acc2.c
+++ b/src/f32-dwconv/gen/up16x25-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x25-avx.c b/src/f32-dwconv/gen/up16x25-avx.c
index 0dd972b..b5b86ee 100644
--- a/src/f32-dwconv/gen/up16x25-avx.c
+++ b/src/f32-dwconv/gen/up16x25-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x25-avx512f-acc2.c b/src/f32-dwconv/gen/up16x25-avx512f-acc2.c
index 1d0d4b6..2a1debc 100644
--- a/src/f32-dwconv/gen/up16x25-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up16x25-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x25-avx512f.c b/src/f32-dwconv/gen/up16x25-avx512f.c
index 140e387..a7b0908 100644
--- a/src/f32-dwconv/gen/up16x25-avx512f.c
+++ b/src/f32-dwconv/gen/up16x25-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x25-fma3-acc2.c b/src/f32-dwconv/gen/up16x25-fma3-acc2.c
index 900b132..f525f81 100644
--- a/src/f32-dwconv/gen/up16x25-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up16x25-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x25-fma3.c b/src/f32-dwconv/gen/up16x25-fma3.c
index 356512f..c3d6eab 100644
--- a/src/f32-dwconv/gen/up16x25-fma3.c
+++ b/src/f32-dwconv/gen/up16x25-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-avx-acc2.c b/src/f32-dwconv/gen/up16x4-avx-acc2.c
index 5824160..417ac14 100644
--- a/src/f32-dwconv/gen/up16x4-avx-acc2.c
+++ b/src/f32-dwconv/gen/up16x4-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-avx.c b/src/f32-dwconv/gen/up16x4-avx.c
index 0466bf5..12dac0a 100644
--- a/src/f32-dwconv/gen/up16x4-avx.c
+++ b/src/f32-dwconv/gen/up16x4-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-avx512f-acc2.c b/src/f32-dwconv/gen/up16x4-avx512f-acc2.c
index c9e6586..2586916 100644
--- a/src/f32-dwconv/gen/up16x4-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up16x4-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-avx512f.c b/src/f32-dwconv/gen/up16x4-avx512f.c
index 0a62555..db5e9d0 100644
--- a/src/f32-dwconv/gen/up16x4-avx512f.c
+++ b/src/f32-dwconv/gen/up16x4-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-fma3-acc2.c b/src/f32-dwconv/gen/up16x4-fma3-acc2.c
index e3052e9..dddb625 100644
--- a/src/f32-dwconv/gen/up16x4-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up16x4-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x4-fma3.c b/src/f32-dwconv/gen/up16x4-fma3.c
index 1dc72f2..4d3be76 100644
--- a/src/f32-dwconv/gen/up16x4-fma3.c
+++ b/src/f32-dwconv/gen/up16x4-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-avx-acc2.c b/src/f32-dwconv/gen/up16x9-avx-acc2.c
index 5933da7..8516ca4 100644
--- a/src/f32-dwconv/gen/up16x9-avx-acc2.c
+++ b/src/f32-dwconv/gen/up16x9-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-avx.c b/src/f32-dwconv/gen/up16x9-avx.c
index 919d2d8..fc4a327 100644
--- a/src/f32-dwconv/gen/up16x9-avx.c
+++ b/src/f32-dwconv/gen/up16x9-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-avx512f-acc2.c b/src/f32-dwconv/gen/up16x9-avx512f-acc2.c
index 17587f5..7b063a2 100644
--- a/src/f32-dwconv/gen/up16x9-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up16x9-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-avx512f.c b/src/f32-dwconv/gen/up16x9-avx512f.c
index 4a7606f..389bfb9 100644
--- a/src/f32-dwconv/gen/up16x9-avx512f.c
+++ b/src/f32-dwconv/gen/up16x9-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-fma3-acc2.c b/src/f32-dwconv/gen/up16x9-fma3-acc2.c
index e8eb9b3..07f30f8 100644
--- a/src/f32-dwconv/gen/up16x9-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up16x9-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up16x9-fma3.c b/src/f32-dwconv/gen/up16x9-fma3.c
index 1df54ca..c6b61c0 100644
--- a/src/f32-dwconv/gen/up16x9-fma3.c
+++ b/src/f32-dwconv/gen/up16x9-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x25-scalar-acc2.c b/src/f32-dwconv/gen/up1x25-scalar-acc2.c
index f0ad628..c759f8e 100644
--- a/src/f32-dwconv/gen/up1x25-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up1x25-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x25-scalar.c b/src/f32-dwconv/gen/up1x25-scalar.c
index f4402d5..43ebc4f 100644
--- a/src/f32-dwconv/gen/up1x25-scalar.c
+++ b/src/f32-dwconv/gen/up1x25-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x25-wasm-acc2.c b/src/f32-dwconv/gen/up1x25-wasm-acc2.c
index 4280387..738bafb 100644
--- a/src/f32-dwconv/gen/up1x25-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up1x25-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x25-wasm.c b/src/f32-dwconv/gen/up1x25-wasm.c
index f79350d..4e8b227 100644
--- a/src/f32-dwconv/gen/up1x25-wasm.c
+++ b/src/f32-dwconv/gen/up1x25-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x4-scalar-acc2.c b/src/f32-dwconv/gen/up1x4-scalar-acc2.c
index 1065269..b03e122 100644
--- a/src/f32-dwconv/gen/up1x4-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up1x4-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x4-scalar.c b/src/f32-dwconv/gen/up1x4-scalar.c
index ac36f1d..2ce4999 100644
--- a/src/f32-dwconv/gen/up1x4-scalar.c
+++ b/src/f32-dwconv/gen/up1x4-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x4-wasm-acc2.c b/src/f32-dwconv/gen/up1x4-wasm-acc2.c
index f9c2342..58bac7e 100644
--- a/src/f32-dwconv/gen/up1x4-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up1x4-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x4-wasm.c b/src/f32-dwconv/gen/up1x4-wasm.c
index 9cfb16e..2ee8260 100644
--- a/src/f32-dwconv/gen/up1x4-wasm.c
+++ b/src/f32-dwconv/gen/up1x4-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x9-scalar-acc2.c b/src/f32-dwconv/gen/up1x9-scalar-acc2.c
index 7c25e8e..b716d0e 100644
--- a/src/f32-dwconv/gen/up1x9-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up1x9-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x9-scalar.c b/src/f32-dwconv/gen/up1x9-scalar.c
index cf3d2a1..24b7d3a 100644
--- a/src/f32-dwconv/gen/up1x9-scalar.c
+++ b/src/f32-dwconv/gen/up1x9-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x9-wasm-acc2.c b/src/f32-dwconv/gen/up1x9-wasm-acc2.c
index c610203..58eea4a 100644
--- a/src/f32-dwconv/gen/up1x9-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up1x9-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up1x9-wasm.c b/src/f32-dwconv/gen/up1x9-wasm.c
index 290b2fa..ca03f65 100644
--- a/src/f32-dwconv/gen/up1x9-wasm.c
+++ b/src/f32-dwconv/gen/up1x9-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x25-scalar-acc2.c b/src/f32-dwconv/gen/up2x25-scalar-acc2.c
index 88fd4b0..ea16d82 100644
--- a/src/f32-dwconv/gen/up2x25-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up2x25-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x25-scalar.c b/src/f32-dwconv/gen/up2x25-scalar.c
index 6bdad89..a9c5fdf 100644
--- a/src/f32-dwconv/gen/up2x25-scalar.c
+++ b/src/f32-dwconv/gen/up2x25-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x25-wasm-acc2.c b/src/f32-dwconv/gen/up2x25-wasm-acc2.c
index 26afa3d..7f3fcff 100644
--- a/src/f32-dwconv/gen/up2x25-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up2x25-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x25-wasm.c b/src/f32-dwconv/gen/up2x25-wasm.c
index bc39927..b2fa710 100644
--- a/src/f32-dwconv/gen/up2x25-wasm.c
+++ b/src/f32-dwconv/gen/up2x25-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x4-scalar-acc2.c b/src/f32-dwconv/gen/up2x4-scalar-acc2.c
index 1f934ad..be68e8c 100644
--- a/src/f32-dwconv/gen/up2x4-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up2x4-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x4-scalar.c b/src/f32-dwconv/gen/up2x4-scalar.c
index a601a89..6012d96 100644
--- a/src/f32-dwconv/gen/up2x4-scalar.c
+++ b/src/f32-dwconv/gen/up2x4-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x4-wasm-acc2.c b/src/f32-dwconv/gen/up2x4-wasm-acc2.c
index 39dd048..521385e 100644
--- a/src/f32-dwconv/gen/up2x4-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up2x4-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x4-wasm.c b/src/f32-dwconv/gen/up2x4-wasm.c
index e1b795a..c971a5e 100644
--- a/src/f32-dwconv/gen/up2x4-wasm.c
+++ b/src/f32-dwconv/gen/up2x4-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x9-scalar-acc2.c b/src/f32-dwconv/gen/up2x9-scalar-acc2.c
index 51fcd2d..80b3bd1 100644
--- a/src/f32-dwconv/gen/up2x9-scalar-acc2.c
+++ b/src/f32-dwconv/gen/up2x9-scalar-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x9-scalar.c b/src/f32-dwconv/gen/up2x9-scalar.c
index 82bd4e0..1dd3c2b 100644
--- a/src/f32-dwconv/gen/up2x9-scalar.c
+++ b/src/f32-dwconv/gen/up2x9-scalar.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x9-wasm-acc2.c b/src/f32-dwconv/gen/up2x9-wasm-acc2.c
index 2d8aea3..bc545a4 100644
--- a/src/f32-dwconv/gen/up2x9-wasm-acc2.c
+++ b/src/f32-dwconv/gen/up2x9-wasm-acc2.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up2x9-wasm.c b/src/f32-dwconv/gen/up2x9-wasm.c
index 80be15e..b43b1d6 100644
--- a/src/f32-dwconv/gen/up2x9-wasm.c
+++ b/src/f32-dwconv/gen/up2x9-wasm.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x25-avx512f-acc2.c b/src/f32-dwconv/gen/up32x25-avx512f-acc2.c
index a666d1e..80ec2b5 100644
--- a/src/f32-dwconv/gen/up32x25-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up32x25-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x25-avx512f.c b/src/f32-dwconv/gen/up32x25-avx512f.c
index 5b896a3..6061caf 100644
--- a/src/f32-dwconv/gen/up32x25-avx512f.c
+++ b/src/f32-dwconv/gen/up32x25-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x4-avx512f-acc2.c b/src/f32-dwconv/gen/up32x4-avx512f-acc2.c
index d8aaa08..266ad53 100644
--- a/src/f32-dwconv/gen/up32x4-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up32x4-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x4-avx512f.c b/src/f32-dwconv/gen/up32x4-avx512f.c
index dc5b4a8..0ba71c0 100644
--- a/src/f32-dwconv/gen/up32x4-avx512f.c
+++ b/src/f32-dwconv/gen/up32x4-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x9-avx512f-acc2.c b/src/f32-dwconv/gen/up32x9-avx512f-acc2.c
index cec1e07..6ecae96 100644
--- a/src/f32-dwconv/gen/up32x9-avx512f-acc2.c
+++ b/src/f32-dwconv/gen/up32x9-avx512f-acc2.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up32x9-avx512f.c b/src/f32-dwconv/gen/up32x9-avx512f.c
index 3cb0600..b7ce954 100644
--- a/src/f32-dwconv/gen/up32x9-avx512f.c
+++ b/src/f32-dwconv/gen/up32x9-avx512f.c
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x25-psimd-acc2.c b/src/f32-dwconv/gen/up4x25-psimd-acc2.c
index 7d6939a..61b30e7 100644
--- a/src/f32-dwconv/gen/up4x25-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up4x25-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x25-psimd.c b/src/f32-dwconv/gen/up4x25-psimd.c
index 8843c01..2369918 100644
--- a/src/f32-dwconv/gen/up4x25-psimd.c
+++ b/src/f32-dwconv/gen/up4x25-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x25-sse-acc2.c b/src/f32-dwconv/gen/up4x25-sse-acc2.c
index b0495a4..973f5a0 100644
--- a/src/f32-dwconv/gen/up4x25-sse-acc2.c
+++ b/src/f32-dwconv/gen/up4x25-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x25-sse.c b/src/f32-dwconv/gen/up4x25-sse.c
index 9540daa..2fefa2d 100644
--- a/src/f32-dwconv/gen/up4x25-sse.c
+++ b/src/f32-dwconv/gen/up4x25-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x4-psimd-acc2.c b/src/f32-dwconv/gen/up4x4-psimd-acc2.c
index 145d734..a641dfc 100644
--- a/src/f32-dwconv/gen/up4x4-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up4x4-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x4-psimd.c b/src/f32-dwconv/gen/up4x4-psimd.c
index 347ceef..1be5bdd 100644
--- a/src/f32-dwconv/gen/up4x4-psimd.c
+++ b/src/f32-dwconv/gen/up4x4-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x4-sse-acc2.c b/src/f32-dwconv/gen/up4x4-sse-acc2.c
index f1bcc87..cf8aa36 100644
--- a/src/f32-dwconv/gen/up4x4-sse-acc2.c
+++ b/src/f32-dwconv/gen/up4x4-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x4-sse.c b/src/f32-dwconv/gen/up4x4-sse.c
index 318855b..ff9a363 100644
--- a/src/f32-dwconv/gen/up4x4-sse.c
+++ b/src/f32-dwconv/gen/up4x4-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-neon-acc2.c b/src/f32-dwconv/gen/up4x9-neon-acc2.c
index 4f9bc94..f5a92e9 100644
--- a/src/f32-dwconv/gen/up4x9-neon-acc2.c
+++ b/src/f32-dwconv/gen/up4x9-neon-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-neon.c b/src/f32-dwconv/gen/up4x9-neon.c
index b2b9178..b87cf3d 100644
--- a/src/f32-dwconv/gen/up4x9-neon.c
+++ b/src/f32-dwconv/gen/up4x9-neon.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-neonfma-acc2.c b/src/f32-dwconv/gen/up4x9-neonfma-acc2.c
index fbe00d2..d16757a 100644
--- a/src/f32-dwconv/gen/up4x9-neonfma-acc2.c
+++ b/src/f32-dwconv/gen/up4x9-neonfma-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-neonfma.c b/src/f32-dwconv/gen/up4x9-neonfma.c
index 0bbc74e..bc05b30 100644
--- a/src/f32-dwconv/gen/up4x9-neonfma.c
+++ b/src/f32-dwconv/gen/up4x9-neonfma.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-psimd-acc2.c b/src/f32-dwconv/gen/up4x9-psimd-acc2.c
index b9b6209..3643b46 100644
--- a/src/f32-dwconv/gen/up4x9-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up4x9-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-psimd.c b/src/f32-dwconv/gen/up4x9-psimd.c
index 1f5e46c..216524b 100644
--- a/src/f32-dwconv/gen/up4x9-psimd.c
+++ b/src/f32-dwconv/gen/up4x9-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-sse-acc2.c b/src/f32-dwconv/gen/up4x9-sse-acc2.c
index 7b0dec3..bde192c 100644
--- a/src/f32-dwconv/gen/up4x9-sse-acc2.c
+++ b/src/f32-dwconv/gen/up4x9-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up4x9-sse.c b/src/f32-dwconv/gen/up4x9-sse.c
index ca64e6f..d3696c5 100644
--- a/src/f32-dwconv/gen/up4x9-sse.c
+++ b/src/f32-dwconv/gen/up4x9-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-avx-acc2.c b/src/f32-dwconv/gen/up8x25-avx-acc2.c
index 4e95c03..ae9919e 100644
--- a/src/f32-dwconv/gen/up8x25-avx-acc2.c
+++ b/src/f32-dwconv/gen/up8x25-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-avx.c b/src/f32-dwconv/gen/up8x25-avx.c
index 6c5ba0b..9f1516a 100644
--- a/src/f32-dwconv/gen/up8x25-avx.c
+++ b/src/f32-dwconv/gen/up8x25-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-fma3-acc2.c b/src/f32-dwconv/gen/up8x25-fma3-acc2.c
index 3ff2862..95fe531 100644
--- a/src/f32-dwconv/gen/up8x25-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up8x25-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-fma3.c b/src/f32-dwconv/gen/up8x25-fma3.c
index d4feff5..367d1e1 100644
--- a/src/f32-dwconv/gen/up8x25-fma3.c
+++ b/src/f32-dwconv/gen/up8x25-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-psimd-acc2.c b/src/f32-dwconv/gen/up8x25-psimd-acc2.c
index 399a4b9..1c9bf9f 100644
--- a/src/f32-dwconv/gen/up8x25-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up8x25-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-psimd.c b/src/f32-dwconv/gen/up8x25-psimd.c
index e38e479..961e00e 100644
--- a/src/f32-dwconv/gen/up8x25-psimd.c
+++ b/src/f32-dwconv/gen/up8x25-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-sse-acc2.c b/src/f32-dwconv/gen/up8x25-sse-acc2.c
index f839bb1..1c72e45 100644
--- a/src/f32-dwconv/gen/up8x25-sse-acc2.c
+++ b/src/f32-dwconv/gen/up8x25-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x25-sse.c b/src/f32-dwconv/gen/up8x25-sse.c
index a023a52..54727e5 100644
--- a/src/f32-dwconv/gen/up8x25-sse.c
+++ b/src/f32-dwconv/gen/up8x25-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-avx-acc2.c b/src/f32-dwconv/gen/up8x4-avx-acc2.c
index 6daf49e..8bd1388 100644
--- a/src/f32-dwconv/gen/up8x4-avx-acc2.c
+++ b/src/f32-dwconv/gen/up8x4-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-avx.c b/src/f32-dwconv/gen/up8x4-avx.c
index cab9628..d371481 100644
--- a/src/f32-dwconv/gen/up8x4-avx.c
+++ b/src/f32-dwconv/gen/up8x4-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-fma3-acc2.c b/src/f32-dwconv/gen/up8x4-fma3-acc2.c
index 823bbad..6aceab7 100644
--- a/src/f32-dwconv/gen/up8x4-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up8x4-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-fma3.c b/src/f32-dwconv/gen/up8x4-fma3.c
index 9defb32..decad26 100644
--- a/src/f32-dwconv/gen/up8x4-fma3.c
+++ b/src/f32-dwconv/gen/up8x4-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-psimd-acc2.c b/src/f32-dwconv/gen/up8x4-psimd-acc2.c
index eb1b831..5e9a184 100644
--- a/src/f32-dwconv/gen/up8x4-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up8x4-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-psimd.c b/src/f32-dwconv/gen/up8x4-psimd.c
index 79c880f..c726443 100644
--- a/src/f32-dwconv/gen/up8x4-psimd.c
+++ b/src/f32-dwconv/gen/up8x4-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-sse-acc2.c b/src/f32-dwconv/gen/up8x4-sse-acc2.c
index c188482..0c3b413 100644
--- a/src/f32-dwconv/gen/up8x4-sse-acc2.c
+++ b/src/f32-dwconv/gen/up8x4-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x4-sse.c b/src/f32-dwconv/gen/up8x4-sse.c
index 9547fcc..11925e0 100644
--- a/src/f32-dwconv/gen/up8x4-sse.c
+++ b/src/f32-dwconv/gen/up8x4-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-avx-acc2.c b/src/f32-dwconv/gen/up8x9-avx-acc2.c
index b725965..9dc80d8 100644
--- a/src/f32-dwconv/gen/up8x9-avx-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-avx-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-avx.c b/src/f32-dwconv/gen/up8x9-avx.c
index f4e197c..9c3fb7b 100644
--- a/src/f32-dwconv/gen/up8x9-avx.c
+++ b/src/f32-dwconv/gen/up8x9-avx.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-fma3-acc2.c b/src/f32-dwconv/gen/up8x9-fma3-acc2.c
index 12df15f..6a8df16 100644
--- a/src/f32-dwconv/gen/up8x9-fma3-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-fma3-acc2.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-fma3.c b/src/f32-dwconv/gen/up8x9-fma3.c
index 6df946f..4a26495 100644
--- a/src/f32-dwconv/gen/up8x9-fma3.c
+++ b/src/f32-dwconv/gen/up8x9-fma3.c
@@ -24,7 +24,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-neon-acc2.c b/src/f32-dwconv/gen/up8x9-neon-acc2.c
index 3386277..d337232 100644
--- a/src/f32-dwconv/gen/up8x9-neon-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-neon-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-neon.c b/src/f32-dwconv/gen/up8x9-neon.c
index 44bf87d..d2fadeb 100644
--- a/src/f32-dwconv/gen/up8x9-neon.c
+++ b/src/f32-dwconv/gen/up8x9-neon.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-neonfma-acc2.c b/src/f32-dwconv/gen/up8x9-neonfma-acc2.c
index de782a2..b949fde 100644
--- a/src/f32-dwconv/gen/up8x9-neonfma-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-neonfma-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-neonfma.c b/src/f32-dwconv/gen/up8x9-neonfma.c
index ae30c14..7a59c32 100644
--- a/src/f32-dwconv/gen/up8x9-neonfma.c
+++ b/src/f32-dwconv/gen/up8x9-neonfma.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-psimd-acc2.c b/src/f32-dwconv/gen/up8x9-psimd-acc2.c
index 6b02c48..f5730bd 100644
--- a/src/f32-dwconv/gen/up8x9-psimd-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-psimd-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-psimd.c b/src/f32-dwconv/gen/up8x9-psimd.c
index a5478d0..342226a 100644
--- a/src/f32-dwconv/gen/up8x9-psimd.c
+++ b/src/f32-dwconv/gen/up8x9-psimd.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-sse-acc2.c b/src/f32-dwconv/gen/up8x9-sse-acc2.c
index e25d021..6bf892b 100644
--- a/src/f32-dwconv/gen/up8x9-sse-acc2.c
+++ b/src/f32-dwconv/gen/up8x9-sse-acc2.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/gen/up8x9-sse.c b/src/f32-dwconv/gen/up8x9-sse.c
index 6067d59..557aa7a 100644
--- a/src/f32-dwconv/gen/up8x9-sse.c
+++ b/src/f32-dwconv/gen/up8x9-sse.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-avx.c.in b/src/f32-dwconv/up-avx.c.in
index 92c04dd..1ff8854 100644
--- a/src/f32-dwconv/up-avx.c.in
+++ b/src/f32-dwconv/up-avx.c.in
@@ -25,7 +25,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-avx512.c.in b/src/f32-dwconv/up-avx512.c.in
index e9cff30..5cb4c23 100644
--- a/src/f32-dwconv/up-avx512.c.in
+++ b/src/f32-dwconv/up-avx512.c.in
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-neon.c.in b/src/f32-dwconv/up-neon.c.in
index 182d9d2..b2194c7 100644
--- a/src/f32-dwconv/up-neon.c.in
+++ b/src/f32-dwconv/up-neon.c.in
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-psimd.c.in b/src/f32-dwconv/up-psimd.c.in
index 14d6380..8a8960e 100644
--- a/src/f32-dwconv/up-psimd.c.in
+++ b/src/f32-dwconv/up-psimd.c.in
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-scalar.c.in b/src/f32-dwconv/up-scalar.c.in
index 58319b4..8b21d56 100644
--- a/src/f32-dwconv/up-scalar.c.in
+++ b/src/f32-dwconv/up-scalar.c.in
@@ -23,7 +23,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up-sse.c.in b/src/f32-dwconv/up-sse.c.in
index 7a4c8bb..19111c5 100644
--- a/src/f32-dwconv/up-sse.c.in
+++ b/src/f32-dwconv/up-sse.c.in
@@ -22,7 +22,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(channels != 0);
   assert(output_width != 0);
diff --git a/src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S b/src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S
index bd75792..4e6bddc 100644
--- a/src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S
@@ -13,7 +13,7 @@
 #     float* output,
 #     size_t input_stride,
 #     size_t output_increment,
-#     const union xnn_f32_output_params params[restrict static 1])
+#     const union xnn_f32_minmax_params params[restrict static 1])
 BEGIN_FUNCTION xnn_f32_dwconv_ukernel_up4x9__aarch64_neonfma_cortex_a55
 
         # Save d10-d15 on stack
@@ -21,7 +21,7 @@
         STP d12, d13, [sp, 16]
         STP d14, d15, [sp, 32]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x7]
 
 0:
diff --git a/src/f32-dwconv/up4x9-aarch64-neonfma.S b/src/f32-dwconv/up4x9-aarch64-neonfma.S
index 56b90c5..5ce8af5 100644
--- a/src/f32-dwconv/up4x9-aarch64-neonfma.S
+++ b/src/f32-dwconv/up4x9-aarch64-neonfma.S
@@ -13,7 +13,7 @@
 #     float* output,
 #     size_t input_stride,
 #     size_t output_increment,
-#     const union xnn_f32_output_params params[restrict static 1])
+#     const union xnn_f32_minmax_params params[restrict static 1])
 BEGIN_FUNCTION xnn_f32_dwconv_ukernel_up4x9__aarch64_neonfma
 
         # Save d8-d15 on stack
@@ -22,7 +22,7 @@
         STP d12, d13, [sp, 32]
         STP d14, d15, [sp, 48]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x7]
 
 0:
diff --git a/src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in b/src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in
index 8f31635..2311494 100644
--- a/src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in
+++ b/src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -50,7 +50,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in b/src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in
index deee057..f5de014 100644
--- a/src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in
+++ b/src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -45,7 +45,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         $if INC:
diff --git a/src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in
index 6ee3699..ceacb8f 100644
--- a/src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -43,7 +43,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         $if INC:
diff --git a/src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in b/src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in
index bd806c8..fe6ba7d 100644
--- a/src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in
+++ b/src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -69,7 +69,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d11,d14,d15 on stack
diff --git a/src/f32-gemm/4x8-aarch32-neon-cortex-a53.S b/src/f32-gemm/4x8-aarch32-neon-cortex-a53.S
index 727be34..828d058 100644
--- a/src/f32-gemm/4x8-aarch32-neon-cortex-a53.S
+++ b/src/f32-gemm/4x8-aarch32-neon-cortex-a53.S
@@ -17,7 +17,7 @@
 //     uint8_t*restrict c,       sp + 108 -> r11
 //     size_t cm_stride,         sp + 112 -> (r6)
 //     size_t cn_stride,         sp + 116 -> (r0)
-//     const union xnn_f32_output_params params[restrict static 1])  sp + 120 -> (r5)
+//     const union xnn_f32_minmax_params params[restrict static 1])  sp + 120 -> (r5)
 
 
 // inner loop registers
@@ -346,11 +346,11 @@
 4:
         // Load params pointer
         LDR          r0, [sp, 116]   // cn_stride
-        LDR          r5, [sp, 120]   // clamping_params
+        LDR          r5, [sp, 120]   // params
         LDR          r2, [sp, 0]     // kc
         SUBS         r1, r1, 8
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         VLD1.32     {d6[],d7[]}, [r5]
 
diff --git a/src/f32-gemm/4x8-aarch32-neon-cortex-a55.S b/src/f32-gemm/4x8-aarch32-neon-cortex-a55.S
index f812a1e..2251e8f 100644
--- a/src/f32-gemm/4x8-aarch32-neon-cortex-a55.S
+++ b/src/f32-gemm/4x8-aarch32-neon-cortex-a55.S
@@ -17,7 +17,7 @@
 //     uint8_t*restrict c,       sp + 104 -> r11
 //     size_t cm_stride,         sp + 108 -> (r6)
 //     size_t cn_stride,         sp + 112 -> (r0)
-//     output_params*params,     sp + 116 -> (r5)
+//     minmax_params*params,     sp + 116 -> (r5)
 
 // inner loop registers
 // r14 (lr) unused
@@ -282,10 +282,10 @@
 4:
         // Load params pointer
         LDR          r0, [sp, 112]   // cn_stride
-        LDR          r5, [sp, 116]   // clamping_params
+        LDR          r5, [sp, 116]   // params
         SUBS         r1, r1, 8
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         VLD1.32     {d6[],d7[]}, [r5]
 
diff --git a/src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in b/src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in
index 05e9857..c48fdad 100644
--- a/src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in
+++ b/src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in
@@ -17,7 +17,7 @@
 //     uint8_t*restrict c,       sp + 104 -> r11
 //     size_t cm_stride,         sp + 108 -> (r6)
 //     size_t cn_stride,         sp + 112 -> r7
-//     const union xnn_f32_output_params params[restrict static 1])  sp + 116 -> (r7)
+//     const union xnn_f32_minmax_params params[restrict static 1])  sp + 116 -> (r7)
 
 
 // inner loop registers
@@ -226,9 +226,9 @@
         .p2align 3
 4:
         // Load params pointer
-        LDR    r5, [sp, 116]         // clamping_params
+        LDR    r5, [sp, 116]         // params
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-gemm/4x8-aarch32-neon-ld64.S b/src/f32-gemm/4x8-aarch32-neon-ld64.S
index a8e1ea2..064ffe2 100644
--- a/src/f32-gemm/4x8-aarch32-neon-ld64.S
+++ b/src/f32-gemm/4x8-aarch32-neon-ld64.S
@@ -17,7 +17,7 @@
 //     uint8_t*restrict c,       sp + 104 -> r11
 //     size_t cm_stride,         sp + 108 -> (r6)
 //     size_t cn_stride,         sp + 112 -> r7
-//     const union xnn_f32_output_params params[restrict static 1])  sp + 116 -> (r7)
+//     const union xnn_f32_minmax_params params[restrict static 1])  sp + 116 -> (r7)
 
 
 // inner loop registers
@@ -51,7 +51,7 @@
         LDR    r11, [sp, 104]        // c
         LDR     r6, [sp, 108]        // cm_stride
         LDR     r9, [sp, 100]        // w
-        LDR     r5, [sp, 116]        // clamping_params
+        LDR     r5, [sp, 116]        // params
 
         // Clamp A and C pointers
         CMP    r0, 2                 // if mr >= 2
@@ -71,7 +71,7 @@
         MOVLO  r0, r10               // a3
         MOVLO  r6, r8                // c3
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[], d5[]}, [r5]!
         LDR         r7, [sp, 112]    // cn_stride
         VLD1.32     {d6[], d7[]}, [r5]
diff --git a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in
index bad1adb..367685f 100644
--- a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in
+++ b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -89,7 +89,7 @@
           # Load params pointer
           LDR x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in
index e6c0e0a..fdeeeba 100644
--- a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in
+++ b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -89,7 +89,7 @@
           # Load params pointer
           LDR x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in
index 810fe18..6c0f31f 100644
--- a/src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -62,7 +62,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d15 on stack
@@ -299,7 +299,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in b/src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in
index 571669f..c9a775d 100644
--- a/src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in
+++ b/src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -47,7 +47,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in b/src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in
index 3da8b3d..4fab264 100644
--- a/src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in
+++ b/src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -47,7 +47,7 @@
           # Load cn_stride, params pointer
           LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in
index bfff0e3..8139c56 100644
--- a/src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # unused compared to 5x8
 #  x4 a5
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in
index 32bb07f..d8ff254 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -100,7 +100,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in
index f65ceeb..7049c67 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -100,7 +100,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in
index 4540f89..891f232 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -413,7 +413,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -509,7 +509,7 @@
 
         .p2align 3
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in
index 414fd59..d425422 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -433,7 +433,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -524,7 +524,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-ios.S.in b/src/f32-gemm/6x8-aarch64-neonfma-ios.S.in
index 7050881..d0558c9 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-ios.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-ios.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> (x0)
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -433,7 +433,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -526,7 +526,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in b/src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in
index f1a19a3..1768bd9 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -98,7 +98,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in b/src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in
index 4d2c125..b4dcdb3 100644
--- a/src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in
+++ b/src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in
@@ -17,9 +17,9 @@
 #     size_t cn_stride,         [sp] -> x14
 $if INC:
   #     const float*restrict acc,  [sp + 8] -> x15
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 $else:
-  #     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+  #     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -98,7 +98,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/MRx2-neon-ld64.c.in b/src/f32-gemm/MRx2-neon-ld64.c.in
index 2b600ec..cb2930e 100644
--- a/src/f32-gemm/MRx2-neon-ld64.c.in
+++ b/src/f32-gemm/MRx2-neon-ld64.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/MRx2c4-psimd.c.in b/src/f32-gemm/MRx2c4-psimd.c.in
index 051b121..bb2f5de 100644
--- a/src/f32-gemm/MRx2c4-psimd.c.in
+++ b/src/f32-gemm/MRx2c4-psimd.c.in
@@ -22,7 +22,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/MRx2c4-sse.c.in b/src/f32-gemm/MRx2c4-sse.c.in
index a58e46b..2ab48ab 100644
--- a/src/f32-gemm/MRx2c4-sse.c.in
+++ b/src/f32-gemm/MRx2c4-sse.c.in
@@ -22,7 +22,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/avx-broadcast.c.in b/src/f32-gemm/avx-broadcast.c.in
index c7df40f..d3d421f 100644
--- a/src/f32-gemm/avx-broadcast.c.in
+++ b/src/f32-gemm/avx-broadcast.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/avx-shuffle4.c.in b/src/f32-gemm/avx-shuffle4.c.in
index 3a204d8..eb8cc4d 100644
--- a/src/f32-gemm/avx-shuffle4.c.in
+++ b/src/f32-gemm/avx-shuffle4.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/avx512-broadcast.c.in b/src/f32-gemm/avx512-broadcast.c.in
index 807e97d..c20cfba 100644
--- a/src/f32-gemm/avx512-broadcast.c.in
+++ b/src/f32-gemm/avx512-broadcast.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
index a057e25..dbb8356 100644
--- a/src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -47,7 +47,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-gemm/gen-inc/1x16-avx-broadcast.c b/src/f32-gemm/gen-inc/1x16-avx-broadcast.c
index 3554a5e..4c84806 100644
--- a/src/f32-gemm/gen-inc/1x16-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x16-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
index 6f8ee71..161cf5d 100644
--- a/src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
index 4a2083a..1eefff0 100644
--- a/src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
index bed177a..1360d3c 100644
--- a/src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x4-scalar.c b/src/f32-gemm/gen-inc/1x4-scalar.c
index 16862f5..32135c5 100644
--- a/src/f32-gemm/gen-inc/1x4-scalar.c
+++ b/src/f32-gemm/gen-inc/1x4-scalar.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x4-wasm.c b/src/f32-gemm/gen-inc/1x4-wasm.c
index b615412..2c9347c 100644
--- a/src/f32-gemm/gen-inc/1x4-wasm.c
+++ b/src/f32-gemm/gen-inc/1x4-wasm.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
index cce223c..8cf637e 100644
--- a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -42,7 +42,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial accumulators
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
index 728f32d..ca9cece 100644
--- a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -40,7 +40,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial accumulators
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
index 606cf5a..8a6b128 100644
--- a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -40,7 +40,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial accumulators
diff --git a/src/f32-gemm/gen-inc/1x8-avx-broadcast.c b/src/f32-gemm/gen-inc/1x8-avx-broadcast.c
index f1e4490..3c41f3a 100644
--- a/src/f32-gemm/gen-inc/1x8-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x8-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
index 204cfca..89866e7 100644
--- a/src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
index e5ade7f..b782403 100644
--- a/src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
index 5ddcd4f..586f02e 100644
--- a/src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
index b0efbc5..d0511d5 100644
--- a/src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
index ff189db..c12ba24 100644
--- a/src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
index 27870c5..f3514ab 100644
--- a/src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-psimd-splat.c b/src/f32-gemm/gen-inc/1x8-psimd-splat.c
index 23a16f9..c8cdfed 100644
--- a/src/f32-gemm/gen-inc/1x8-psimd-splat.c
+++ b/src/f32-gemm/gen-inc/1x8-psimd-splat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-sse-dup.c b/src/f32-gemm/gen-inc/1x8-sse-dup.c
index 5175c11..5d1d6d5 100644
--- a/src/f32-gemm/gen-inc/1x8-sse-dup.c
+++ b/src/f32-gemm/gen-inc/1x8-sse-dup.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8-sse-load1.c b/src/f32-gemm/gen-inc/1x8-sse-load1.c
index 0575946..3f07e25 100644
--- a/src/f32-gemm/gen-inc/1x8-sse-load1.c
+++ b/src/f32-gemm/gen-inc/1x8-sse-load1.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8s4-neon.c b/src/f32-gemm/gen-inc/1x8s4-neon.c
index c85e4e8..1a817f4 100644
--- a/src/f32-gemm/gen-inc/1x8s4-neon.c
+++ b/src/f32-gemm/gen-inc/1x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8s4-neonfma.c b/src/f32-gemm/gen-inc/1x8s4-neonfma.c
index ab988bd..442f427 100644
--- a/src/f32-gemm/gen-inc/1x8s4-neonfma.c
+++ b/src/f32-gemm/gen-inc/1x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8s4-psimd.c b/src/f32-gemm/gen-inc/1x8s4-psimd.c
index e0422aa..175c712 100644
--- a/src/f32-gemm/gen-inc/1x8s4-psimd.c
+++ b/src/f32-gemm/gen-inc/1x8s4-psimd.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/1x8s4-sse.c b/src/f32-gemm/gen-inc/1x8s4-sse.c
index 80bc536..2ab68f5 100644
--- a/src/f32-gemm/gen-inc/1x8s4-sse.c
+++ b/src/f32-gemm/gen-inc/1x8s4-sse.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen-inc/2x4-scalar.c b/src/f32-gemm/gen-inc/2x4-scalar.c
index 6506865..d98d42f 100644
--- a/src/f32-gemm/gen-inc/2x4-scalar.c
+++ b/src/f32-gemm/gen-inc/2x4-scalar.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-gemm/gen-inc/2x4-wasm.c b/src/f32-gemm/gen-inc/2x4-wasm.c
index c362a76..201dff9 100644
--- a/src/f32-gemm/gen-inc/2x4-wasm.c
+++ b/src/f32-gemm/gen-inc/2x4-wasm.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-gemm/gen-inc/3x16-avx-broadcast.c b/src/f32-gemm/gen-inc/3x16-avx-broadcast.c
index cd22a7f..ef5092c 100644
--- a/src/f32-gemm/gen-inc/3x16-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/3x16-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen-inc/3x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
index 5e3f481..146a701 100644
--- a/src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
index 2ca0326..12ec33d 100644
--- a/src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
index 8fc40af..4685455 100644
--- a/src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -66,7 +66,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d11,d14,d15 on stack
diff --git a/src/f32-gemm/gen-inc/4x16-avx-broadcast.c b/src/f32-gemm/gen-inc/4x16-avx-broadcast.c
index 0605dbd..6b58c8c 100644
--- a/src/f32-gemm/gen-inc/4x16-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x16-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
index 78b76e5..d9a6125 100644
--- a/src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
index fc9e461..edb0db0 100644
--- a/src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
index 304209a..7e63a32 100644
--- a/src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x4-scalar.c b/src/f32-gemm/gen-inc/4x4-scalar.c
index ae48344..a426c89 100644
--- a/src/f32-gemm/gen-inc/4x4-scalar.c
+++ b/src/f32-gemm/gen-inc/4x4-scalar.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x4-wasm.c b/src/f32-gemm/gen-inc/4x4-wasm.c
index 7522a84..6800b66 100644
--- a/src/f32-gemm/gen-inc/4x4-wasm.c
+++ b/src/f32-gemm/gen-inc/4x4-wasm.c
@@ -24,7 +24,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
index 6b7cb5e..1a51c82 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -86,7 +86,7 @@
         # Load acc, params pointer
         LDP x15, x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
index 6ea2a9d..af7ab6a 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -86,7 +86,7 @@
         # Load acc, params pointer
         LDP x15, x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
index 4e9e5c8..1b5797f 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -59,7 +59,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d15 on stack
@@ -278,7 +278,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
index 4df1917..e34ccae 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -59,7 +59,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d15 on stack
@@ -282,7 +282,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
index 27371b0..bc02037 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -44,7 +44,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
index 183301c..02e2c5a 100644
--- a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
+++ b/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -44,7 +44,7 @@
         # Load params pointer
         LDR x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/gen-inc/4x8-avx-broadcast.c b/src/f32-gemm/gen-inc/4x8-avx-broadcast.c
index 79ece60..553c1b8 100644
--- a/src/f32-gemm/gen-inc/4x8-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x8-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
index 07e0c56..6f2631a 100644
--- a/src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c b/src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
index f3a1b61..8108f9a 100644
--- a/src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
+++ b/src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
index 98975dd..f6773b3 100644
--- a/src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c b/src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
index 9117e4f..7429c87 100644
--- a/src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
+++ b/src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
index a301d1e..23dfcc6 100644
--- a/src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c b/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
index cd60453..f46db17 100644
--- a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
+++ b/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
index e2a1850..05a0cdc 100644
--- a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c b/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
index b73a0fa..c7d5f7b 100644
--- a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
+++ b/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
index 6e15065..85877dd 100644
--- a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
index 9e678ad..7080da5 100644
--- a/src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-psimd-splat.c b/src/f32-gemm/gen-inc/4x8-psimd-splat.c
index 48127c9..8fbb604 100644
--- a/src/f32-gemm/gen-inc/4x8-psimd-splat.c
+++ b/src/f32-gemm/gen-inc/4x8-psimd-splat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-sse-dup.c b/src/f32-gemm/gen-inc/4x8-sse-dup.c
index 9f7b942..98e85a0 100644
--- a/src/f32-gemm/gen-inc/4x8-sse-dup.c
+++ b/src/f32-gemm/gen-inc/4x8-sse-dup.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8-sse-load1.c b/src/f32-gemm/gen-inc/4x8-sse-load1.c
index 8f1e8b7..b06f706 100644
--- a/src/f32-gemm/gen-inc/4x8-sse-load1.c
+++ b/src/f32-gemm/gen-inc/4x8-sse-load1.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8s4-neon.c b/src/f32-gemm/gen-inc/4x8s4-neon.c
index e77cb53..5d4433e 100644
--- a/src/f32-gemm/gen-inc/4x8s4-neon.c
+++ b/src/f32-gemm/gen-inc/4x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8s4-neonfma.c b/src/f32-gemm/gen-inc/4x8s4-neonfma.c
index ceab0ba..dac3178 100644
--- a/src/f32-gemm/gen-inc/4x8s4-neonfma.c
+++ b/src/f32-gemm/gen-inc/4x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8s4-psimd.c b/src/f32-gemm/gen-inc/4x8s4-psimd.c
index d01407b..4b267a6 100644
--- a/src/f32-gemm/gen-inc/4x8s4-psimd.c
+++ b/src/f32-gemm/gen-inc/4x8s4-psimd.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/4x8s4-sse.c b/src/f32-gemm/gen-inc/4x8s4-sse.c
index b82b752..5064d88 100644
--- a/src/f32-gemm/gen-inc/4x8s4-sse.c
+++ b/src/f32-gemm/gen-inc/4x8s4-sse.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen-inc/5x16-avx-broadcast.c b/src/f32-gemm/gen-inc/5x16-avx-broadcast.c
index 95a9273..0e7063b 100644
--- a/src/f32-gemm/gen-inc/5x16-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x16-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
index 26854e1..892f456 100644
--- a/src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
index d35ac82..3d340e6 100644
--- a/src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
index b33b66a..f5b90f5 100644
--- a/src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
index 40da71d..3361daf 100644
--- a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # unused compared to 5x8
 #  x4 a5
diff --git a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
index 7de201a..c4925bf 100644
--- a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # unused compared to 5x8
 #  x4 a5
diff --git a/src/f32-gemm/gen-inc/5x8-avx-broadcast.c b/src/f32-gemm/gen-inc/5x8-avx-broadcast.c
index 53ab1a8..b2cac30 100644
--- a/src/f32-gemm/gen-inc/5x8-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x8-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
index 5589ab1..110c8aa 100644
--- a/src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
index cb07b18..bb13c41 100644
--- a/src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
index 1efd94c..f571e94 100644
--- a/src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
index a206b45..718d2b6 100644
--- a/src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
index 41b2ebc..428bc1a 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -97,7 +97,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
index a330e03..5ee7b9c 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -97,7 +97,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
index 7757e48..b6b0a02 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -377,7 +377,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -448,7 +448,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
index 59592bf..92c6a9e 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -386,7 +386,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -462,7 +462,7 @@
 
         .p2align 3
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
index b1d9ed1..551f320 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -391,7 +391,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -462,7 +462,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
index 3780442..56add56 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> (x0)
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -377,7 +377,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -450,7 +450,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
index 8bfd7b4..b9f6494 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -95,7 +95,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
index bb79b4e..f720229 100644
--- a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
+++ b/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
@@ -20,7 +20,7 @@
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
 #     const float*restrict acc,  [sp + 8] -> x15
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 16] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 16] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -95,7 +95,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen-inc/6x8-avx-broadcast.c b/src/f32-gemm/gen-inc/6x8-avx-broadcast.c
index 8bf0197..0295d6a 100644
--- a/src/f32-gemm/gen-inc/6x8-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/6x8-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
index 08d2d7a..dd76536 100644
--- a/src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c b/src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
index 92fb118..d9c3ddb 100644
--- a/src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
+++ b/src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
index 2957725..6dc41ac 100644
--- a/src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c b/src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
index 17b6960..f279afc 100644
--- a/src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
+++ b/src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
index 0dad0fd..7495558 100644
--- a/src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c b/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
index 379a979..7e69da7 100644
--- a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
+++ b/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
index f8a74a8..047e541 100644
--- a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c b/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
index a3679c5..b6ba2a2 100644
--- a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
+++ b/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
index 7c2fe58..b7f93c8 100644
--- a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
index 68cd252..7f5543a 100644
--- a/src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8-psimd-splat.c b/src/f32-gemm/gen-inc/6x8-psimd-splat.c
index e2230cf..44807be 100644
--- a/src/f32-gemm/gen-inc/6x8-psimd-splat.c
+++ b/src/f32-gemm/gen-inc/6x8-psimd-splat.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8s4-neon.c b/src/f32-gemm/gen-inc/6x8s4-neon.c
index e6b9ce3..e81dadf 100644
--- a/src/f32-gemm/gen-inc/6x8s4-neon.c
+++ b/src/f32-gemm/gen-inc/6x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8s4-neonfma.c b/src/f32-gemm/gen-inc/6x8s4-neonfma.c
index dc75c2f..728f01f 100644
--- a/src/f32-gemm/gen-inc/6x8s4-neonfma.c
+++ b/src/f32-gemm/gen-inc/6x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/6x8s4-psimd.c b/src/f32-gemm/gen-inc/6x8s4-psimd.c
index 75b1a9a..e8c6153 100644
--- a/src/f32-gemm/gen-inc/6x8s4-psimd.c
+++ b/src/f32-gemm/gen-inc/6x8s4-psimd.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
index ef5f3c2..801c262 100644
--- a/src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen-inc/7x8-avx-broadcast.c b/src/f32-gemm/gen-inc/7x8-avx-broadcast.c
index a991ae9..3229cb1 100644
--- a/src/f32-gemm/gen-inc/7x8-avx-broadcast.c
+++ b/src/f32-gemm/gen-inc/7x8-avx-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen-inc/7x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
index 5ef6236..2838727 100644
--- a/src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
index fe36b1c..5c5528f 100644
--- a/src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen-inc/8x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
index bbdb925..994426b 100644
--- a/src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
@@ -25,7 +25,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen-inc/8x8s4-neon.c b/src/f32-gemm/gen-inc/8x8s4-neon.c
index a072d6d..10f8d21 100644
--- a/src/f32-gemm/gen-inc/8x8s4-neon.c
+++ b/src/f32-gemm/gen-inc/8x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen-inc/8x8s4-neonfma.c b/src/f32-gemm/gen-inc/8x8s4-neonfma.c
index b611084..c7994a5 100644
--- a/src/f32-gemm/gen-inc/8x8s4-neonfma.c
+++ b/src/f32-gemm/gen-inc/8x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
index 7b6f40b..a4b55d9 100644
--- a/src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -44,7 +44,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-gemm/gen/1x16-avx-broadcast.c b/src/f32-gemm/gen/1x16-avx-broadcast.c
index 8dcbdd2..2923498 100644
--- a/src/f32-gemm/gen/1x16-avx-broadcast.c
+++ b/src/f32-gemm/gen/1x16-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x16-avx512f-broadcast.c b/src/f32-gemm/gen/1x16-avx512f-broadcast.c
index 5c91757..2b5de20 100644
--- a/src/f32-gemm/gen/1x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/1x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x16-fma3-broadcast.c b/src/f32-gemm/gen/1x16-fma3-broadcast.c
index a8c9923..1d99f10 100644
--- a/src/f32-gemm/gen/1x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen/1x16-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x16s4-fma3-broadcast.c b/src/f32-gemm/gen/1x16s4-fma3-broadcast.c
index 6f708f6..8f4a9f2 100644
--- a/src/f32-gemm/gen/1x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen/1x16s4-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x4-scalar.c b/src/f32-gemm/gen/1x4-scalar.c
index db5a3d2..42259f0 100644
--- a/src/f32-gemm/gen/1x4-scalar.c
+++ b/src/f32-gemm/gen/1x4-scalar.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x4-wasm.c b/src/f32-gemm/gen/1x4-wasm.c
index 706c06b..040e0a5 100644
--- a/src/f32-gemm/gen/1x4-wasm.c
+++ b/src/f32-gemm/gen/1x4-wasm.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
index 6882340..2858822 100644
--- a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -39,7 +39,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial bias from w into accumulators
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
index d842c84..7e014f9 100644
--- a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -37,7 +37,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial bias from w into accumulators
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
index 4258e67..47e7175 100644
--- a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         (x7) - unused
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -37,7 +37,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 0:
         # Load initial bias from w into accumulators
diff --git a/src/f32-gemm/gen/1x8-avx-broadcast.c b/src/f32-gemm/gen/1x8-avx-broadcast.c
index 79265ea..5ad2c82 100644
--- a/src/f32-gemm/gen/1x8-avx-broadcast.c
+++ b/src/f32-gemm/gen/1x8-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-fma3-broadcast.c b/src/f32-gemm/gen/1x8-fma3-broadcast.c
index ae51c41..34f4f25 100644
--- a/src/f32-gemm/gen/1x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/1x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-neon-dup-ld64.c b/src/f32-gemm/gen/1x8-neon-dup-ld64.c
index 671015d..0ebe222 100644
--- a/src/f32-gemm/gen/1x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen/1x8-neon-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-neon-lane-ld64.c b/src/f32-gemm/gen/1x8-neon-lane-ld64.c
index 31f7e17..7cb8df4 100644
--- a/src/f32-gemm/gen/1x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen/1x8-neon-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
index fccaca3..b428f25 100644
--- a/src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
index 428e181..9e209c7 100644
--- a/src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-psimd-loadsplat.c b/src/f32-gemm/gen/1x8-psimd-loadsplat.c
index 6df6dd3..21df21a 100644
--- a/src/f32-gemm/gen/1x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen/1x8-psimd-loadsplat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-psimd-splat.c b/src/f32-gemm/gen/1x8-psimd-splat.c
index 485bac7..fb8e58d 100644
--- a/src/f32-gemm/gen/1x8-psimd-splat.c
+++ b/src/f32-gemm/gen/1x8-psimd-splat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-sse-dup.c b/src/f32-gemm/gen/1x8-sse-dup.c
index 4ac9205..59f41bc 100644
--- a/src/f32-gemm/gen/1x8-sse-dup.c
+++ b/src/f32-gemm/gen/1x8-sse-dup.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8-sse-load1.c b/src/f32-gemm/gen/1x8-sse-load1.c
index 7842261..38e09be 100644
--- a/src/f32-gemm/gen/1x8-sse-load1.c
+++ b/src/f32-gemm/gen/1x8-sse-load1.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8s4-neon.c b/src/f32-gemm/gen/1x8s4-neon.c
index 884a6f4..d9d5f41 100644
--- a/src/f32-gemm/gen/1x8s4-neon.c
+++ b/src/f32-gemm/gen/1x8s4-neon.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8s4-neonfma.c b/src/f32-gemm/gen/1x8s4-neonfma.c
index fb8b0af..d7cc9de 100644
--- a/src/f32-gemm/gen/1x8s4-neonfma.c
+++ b/src/f32-gemm/gen/1x8s4-neonfma.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8s4-psimd.c b/src/f32-gemm/gen/1x8s4-psimd.c
index 5062bbd..6360966 100644
--- a/src/f32-gemm/gen/1x8s4-psimd.c
+++ b/src/f32-gemm/gen/1x8s4-psimd.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/1x8s4-sse.c b/src/f32-gemm/gen/1x8s4-sse.c
index dff0537..0614bb2 100644
--- a/src/f32-gemm/gen/1x8s4-sse.c
+++ b/src/f32-gemm/gen/1x8s4-sse.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-gemm/gen/2x4-scalar.c b/src/f32-gemm/gen/2x4-scalar.c
index dacfd5f..c79e7b5 100644
--- a/src/f32-gemm/gen/2x4-scalar.c
+++ b/src/f32-gemm/gen/2x4-scalar.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-gemm/gen/2x4-wasm.c b/src/f32-gemm/gen/2x4-wasm.c
index 989b9f0..498d63b 100644
--- a/src/f32-gemm/gen/2x4-wasm.c
+++ b/src/f32-gemm/gen/2x4-wasm.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-gemm/gen/3x16-avx-broadcast.c b/src/f32-gemm/gen/3x16-avx-broadcast.c
index 5d32c31..d1a453b 100644
--- a/src/f32-gemm/gen/3x16-avx-broadcast.c
+++ b/src/f32-gemm/gen/3x16-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen/3x16-fma3-broadcast.c b/src/f32-gemm/gen/3x16-fma3-broadcast.c
index ab8ed66..c21fdfc 100644
--- a/src/f32-gemm/gen/3x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen/3x16-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen/3x16s4-fma3-broadcast.c b/src/f32-gemm/gen/3x16s4-fma3-broadcast.c
index e194a15..78c6b95 100644
--- a/src/f32-gemm/gen/3x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen/3x16s4-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
index b9401df..0b34c2f 100644
--- a/src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -63,7 +63,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d11,d14,d15 on stack
diff --git a/src/f32-gemm/gen/4x16-avx-broadcast.c b/src/f32-gemm/gen/4x16-avx-broadcast.c
index 342dbe8..7345358 100644
--- a/src/f32-gemm/gen/4x16-avx-broadcast.c
+++ b/src/f32-gemm/gen/4x16-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x16-avx512f-broadcast.c b/src/f32-gemm/gen/4x16-avx512f-broadcast.c
index f40e308..53dad28 100644
--- a/src/f32-gemm/gen/4x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/4x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x16-fma3-broadcast.c b/src/f32-gemm/gen/4x16-fma3-broadcast.c
index e1ac9a6..e82253b 100644
--- a/src/f32-gemm/gen/4x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen/4x16-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x16s4-fma3-broadcast.c b/src/f32-gemm/gen/4x16s4-fma3-broadcast.c
index 1778893..ef85d27 100644
--- a/src/f32-gemm/gen/4x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen/4x16s4-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2-neon-lane-ld64.c b/src/f32-gemm/gen/4x2-neon-lane-ld64.c
index 118e356..8edba0c 100644
--- a/src/f32-gemm/gen/4x2-neon-lane-ld64.c
+++ b/src/f32-gemm/gen/4x2-neon-lane-ld64.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2-neonfma-lane-ld64.c b/src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
index e161a0a..aab6f55 100644
--- a/src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2-scalar.c b/src/f32-gemm/gen/4x2-scalar.c
index cd2f650..e0f0700 100644
--- a/src/f32-gemm/gen/4x2-scalar.c
+++ b/src/f32-gemm/gen/4x2-scalar.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2-wasm.c b/src/f32-gemm/gen/4x2-wasm.c
index 9ea76ce..2ac8ca2 100644
--- a/src/f32-gemm/gen/4x2-wasm.c
+++ b/src/f32-gemm/gen/4x2-wasm.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2c4-psimd.c b/src/f32-gemm/gen/4x2c4-psimd.c
index a6d4168..c67f321 100644
--- a/src/f32-gemm/gen/4x2c4-psimd.c
+++ b/src/f32-gemm/gen/4x2c4-psimd.c
@@ -24,7 +24,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x2c4-sse.c b/src/f32-gemm/gen/4x2c4-sse.c
index 3391628..a8aded7 100644
--- a/src/f32-gemm/gen/4x2c4-sse.c
+++ b/src/f32-gemm/gen/4x2c4-sse.c
@@ -24,7 +24,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x4-scalar.c b/src/f32-gemm/gen/4x4-scalar.c
index 350d5ba..495d5ae 100644
--- a/src/f32-gemm/gen/4x4-scalar.c
+++ b/src/f32-gemm/gen/4x4-scalar.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x4-wasm.c b/src/f32-gemm/gen/4x4-wasm.c
index 3b6e37f..4b644ec 100644
--- a/src/f32-gemm/gen/4x4-wasm.c
+++ b/src/f32-gemm/gen/4x4-wasm.c
@@ -23,7 +23,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S b/src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
index 0b28b36..4d8efc7 100644
--- a/src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
+++ b/src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
@@ -21,7 +21,7 @@
 //     uint8_t*restrict c,       sp + 104 -> r11
 //     size_t cm_stride,         sp + 108 -> (r6)
 //     size_t cn_stride,         sp + 112 -> r7
-//     const union xnn_f32_output_params params[restrict static 1])  sp + 116 -> (r7)
+//     const union xnn_f32_minmax_params params[restrict static 1])  sp + 116 -> (r7)
 
 
 // inner loop registers
@@ -203,9 +203,9 @@
         .p2align 3
 4:
         // Load params pointer
-        LDR    r5, [sp, 116]         // clamping_params
+        LDR    r5, [sp, 116]         // params
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S b/src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
index b2e9d0c..45a5107 100644
--- a/src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
+++ b/src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
@@ -21,7 +21,7 @@
 //     uint8_t*restrict c,       sp + 104 -> r11
 //     size_t cm_stride,         sp + 108 -> (r6)
 //     size_t cn_stride,         sp + 112 -> r7
-//     const union xnn_f32_output_params params[restrict static 1])  sp + 116 -> (r7)
+//     const union xnn_f32_minmax_params params[restrict static 1])  sp + 116 -> (r7)
 
 
 // inner loop registers
@@ -223,9 +223,9 @@
         .p2align 3
 4:
         // Load params pointer
-        LDR    r5, [sp, 116]         // clamping_params
+        LDR    r5, [sp, 116]         // params
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
index 8706312..6c3934f 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -85,7 +85,7 @@
         # Load params pointer
         LDR x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
index 5baaa0e..2606f7d 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -85,7 +85,7 @@
         # Load params pointer
         LDR x8, [sp, 8]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
index f14855c..68522e9 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -56,7 +56,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d15 on stack
@@ -278,7 +278,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
index d29f3d3..c50de21 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -56,7 +56,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save d8-d15 on stack
@@ -282,7 +282,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
index 4b2e255..3e98548 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -41,7 +41,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
index c81a76a..b708b41 100644
--- a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
+++ b/src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -41,7 +41,7 @@
         # Load cn_stride, params pointer
         LDP x14, x8, [sp]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp A and C pointers
diff --git a/src/f32-gemm/gen/4x8-avx-broadcast.c b/src/f32-gemm/gen/4x8-avx-broadcast.c
index ecd3a98..fb24b24 100644
--- a/src/f32-gemm/gen/4x8-avx-broadcast.c
+++ b/src/f32-gemm/gen/4x8-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-fma3-broadcast.c b/src/f32-gemm/gen/4x8-fma3-broadcast.c
index 8523d2b..d155431 100644
--- a/src/f32-gemm/gen/4x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/4x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neon-dup-ld128.c b/src/f32-gemm/gen/4x8-neon-dup-ld128.c
index 492c6ab..11cef89 100644
--- a/src/f32-gemm/gen/4x8-neon-dup-ld128.c
+++ b/src/f32-gemm/gen/4x8-neon-dup-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neon-dup-ld64.c b/src/f32-gemm/gen/4x8-neon-dup-ld64.c
index 359b020..b103c89 100644
--- a/src/f32-gemm/gen/4x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen/4x8-neon-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neon-lane-ld128.c b/src/f32-gemm/gen/4x8-neon-lane-ld128.c
index b8561d3..13fa74c 100644
--- a/src/f32-gemm/gen/4x8-neon-lane-ld128.c
+++ b/src/f32-gemm/gen/4x8-neon-lane-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neon-lane-ld64.c b/src/f32-gemm/gen/4x8-neon-lane-ld64.c
index af9ff56..4391ea6 100644
--- a/src/f32-gemm/gen/4x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen/4x8-neon-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neonfma-dup-ld128.c b/src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
index 130c258..f47fdb0 100644
--- a/src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
+++ b/src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
index 1435880..e060d9a 100644
--- a/src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neonfma-lane-ld128.c b/src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
index ee3e06a..18c0ca0 100644
--- a/src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
+++ b/src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
index 6a7b6f9..b3bf406 100644
--- a/src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-psimd-loadsplat.c b/src/f32-gemm/gen/4x8-psimd-loadsplat.c
index 247744d..2b7717b 100644
--- a/src/f32-gemm/gen/4x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen/4x8-psimd-loadsplat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-psimd-splat.c b/src/f32-gemm/gen/4x8-psimd-splat.c
index 2c20455..d77edf1 100644
--- a/src/f32-gemm/gen/4x8-psimd-splat.c
+++ b/src/f32-gemm/gen/4x8-psimd-splat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-sse-dup.c b/src/f32-gemm/gen/4x8-sse-dup.c
index 6b1fcd0..e493237 100644
--- a/src/f32-gemm/gen/4x8-sse-dup.c
+++ b/src/f32-gemm/gen/4x8-sse-dup.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8-sse-load1.c b/src/f32-gemm/gen/4x8-sse-load1.c
index 4afb941..66182f6 100644
--- a/src/f32-gemm/gen/4x8-sse-load1.c
+++ b/src/f32-gemm/gen/4x8-sse-load1.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8s4-neon.c b/src/f32-gemm/gen/4x8s4-neon.c
index e462dc0..dbba749 100644
--- a/src/f32-gemm/gen/4x8s4-neon.c
+++ b/src/f32-gemm/gen/4x8s4-neon.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8s4-neonfma.c b/src/f32-gemm/gen/4x8s4-neonfma.c
index 88d9db4..b3981b5 100644
--- a/src/f32-gemm/gen/4x8s4-neonfma.c
+++ b/src/f32-gemm/gen/4x8s4-neonfma.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8s4-psimd.c b/src/f32-gemm/gen/4x8s4-psimd.c
index cbd7c92..e1b15a6 100644
--- a/src/f32-gemm/gen/4x8s4-psimd.c
+++ b/src/f32-gemm/gen/4x8s4-psimd.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/4x8s4-sse.c b/src/f32-gemm/gen/4x8s4-sse.c
index 9f09cea..69936b6 100644
--- a/src/f32-gemm/gen/4x8s4-sse.c
+++ b/src/f32-gemm/gen/4x8s4-sse.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-gemm/gen/5x16-avx-broadcast.c b/src/f32-gemm/gen/5x16-avx-broadcast.c
index deb33bf..e2487d8 100644
--- a/src/f32-gemm/gen/5x16-avx-broadcast.c
+++ b/src/f32-gemm/gen/5x16-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x16-avx512f-broadcast.c b/src/f32-gemm/gen/5x16-avx512f-broadcast.c
index f204d2e..d16809e 100644
--- a/src/f32-gemm/gen/5x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/5x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x16-fma3-broadcast.c b/src/f32-gemm/gen/5x16-fma3-broadcast.c
index 3e1d460..d14e700 100644
--- a/src/f32-gemm/gen/5x16-fma3-broadcast.c
+++ b/src/f32-gemm/gen/5x16-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x16s4-fma3-broadcast.c b/src/f32-gemm/gen/5x16s4-fma3-broadcast.c
index 57bf4ef..1baab1c 100644
--- a/src/f32-gemm/gen/5x16s4-fma3-broadcast.c
+++ b/src/f32-gemm/gen/5x16s4-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
index 4e841f2..bffdc9c 100644
--- a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # unused compared to 5x8
 #  x4 a5
diff --git a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
index 9db48c6..d8f912c 100644
--- a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # unused compared to 5x8
 #  x4 a5
diff --git a/src/f32-gemm/gen/5x8-avx-broadcast.c b/src/f32-gemm/gen/5x8-avx-broadcast.c
index 62c2a36..cdb6427 100644
--- a/src/f32-gemm/gen/5x8-avx-broadcast.c
+++ b/src/f32-gemm/gen/5x8-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x8-fma3-broadcast.c b/src/f32-gemm/gen/5x8-fma3-broadcast.c
index e5ad31f..0817997 100644
--- a/src/f32-gemm/gen/5x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/5x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x8-neon-lane-ld64.c b/src/f32-gemm/gen/5x8-neon-lane-ld64.c
index 1c46d30..1b4b15b 100644
--- a/src/f32-gemm/gen/5x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen/5x8-neon-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/5x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
index 4b2d2b8..813a7ad 100644
--- a/src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-gemm/gen/6x16-avx512f-broadcast.c b/src/f32-gemm/gen/6x16-avx512f-broadcast.c
index 2681afc..ad165d6 100644
--- a/src/f32-gemm/gen/6x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/6x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
index db31f75..4504d2f 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -96,7 +96,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
index 906343a..d264513 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -96,7 +96,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
index 806513b..0e261e9 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -381,7 +381,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -452,7 +452,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
index b9a4da0..7b233ac 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -390,7 +390,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -466,7 +466,7 @@
 
         .p2align 3
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
index 68d7401..962c951 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -395,7 +395,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -466,7 +466,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
index b857d44..f20821b 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> (x0)
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -381,7 +381,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -454,7 +454,7 @@
         RET
 
 4:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
index 48c67b4..f12b3d0 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -94,7 +94,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
index 3844962..447242c 100644
--- a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
+++ b/src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
@@ -19,7 +19,7 @@
 #     uint8_t*restrict c,       x6
 #     size_t cm_stride,         x7
 #     size_t cn_stride,         [sp] -> x14
-#     const union xnn_f32_output_params params[restrict static 1])  [sp + 8] -> x8
+#     const union xnn_f32_minmax_params params[restrict static 1])  [sp + 8] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -94,7 +94,7 @@
         CSEL x4, x12, x4, LO     //   a5 = a4
         CSEL x7, x13, x7, LO     //   c5 = c4
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Load cn_stride
diff --git a/src/f32-gemm/gen/6x8-avx-broadcast.c b/src/f32-gemm/gen/6x8-avx-broadcast.c
index 4a718e8..a56bf26 100644
--- a/src/f32-gemm/gen/6x8-avx-broadcast.c
+++ b/src/f32-gemm/gen/6x8-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-fma3-broadcast.c b/src/f32-gemm/gen/6x8-fma3-broadcast.c
index 05c8e0d..5ac659e 100644
--- a/src/f32-gemm/gen/6x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/6x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neon-dup-ld128.c b/src/f32-gemm/gen/6x8-neon-dup-ld128.c
index ab29875..54d6a22 100644
--- a/src/f32-gemm/gen/6x8-neon-dup-ld128.c
+++ b/src/f32-gemm/gen/6x8-neon-dup-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neon-dup-ld64.c b/src/f32-gemm/gen/6x8-neon-dup-ld64.c
index 2000456..0b112a6 100644
--- a/src/f32-gemm/gen/6x8-neon-dup-ld64.c
+++ b/src/f32-gemm/gen/6x8-neon-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neon-lane-ld128.c b/src/f32-gemm/gen/6x8-neon-lane-ld128.c
index 750783d..4437c2c 100644
--- a/src/f32-gemm/gen/6x8-neon-lane-ld128.c
+++ b/src/f32-gemm/gen/6x8-neon-lane-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neon-lane-ld64.c b/src/f32-gemm/gen/6x8-neon-lane-ld64.c
index e6ca249..44dfaf8 100644
--- a/src/f32-gemm/gen/6x8-neon-lane-ld64.c
+++ b/src/f32-gemm/gen/6x8-neon-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neonfma-dup-ld128.c b/src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
index a265c46..4a0369e 100644
--- a/src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
+++ b/src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
index 410d6a0..6d796b3 100644
--- a/src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
+++ b/src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neonfma-lane-ld128.c b/src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
index 4d1fe6e..efeee74 100644
--- a/src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
+++ b/src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
index 0a34f44..c68b63f 100644
--- a/src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
+++ b/src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-psimd-loadsplat.c b/src/f32-gemm/gen/6x8-psimd-loadsplat.c
index feba9f8..e772214 100644
--- a/src/f32-gemm/gen/6x8-psimd-loadsplat.c
+++ b/src/f32-gemm/gen/6x8-psimd-loadsplat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8-psimd-splat.c b/src/f32-gemm/gen/6x8-psimd-splat.c
index 2aac13e..03fef19 100644
--- a/src/f32-gemm/gen/6x8-psimd-splat.c
+++ b/src/f32-gemm/gen/6x8-psimd-splat.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8s4-neon.c b/src/f32-gemm/gen/6x8s4-neon.c
index be25d07..e60c4df 100644
--- a/src/f32-gemm/gen/6x8s4-neon.c
+++ b/src/f32-gemm/gen/6x8s4-neon.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8s4-neonfma.c b/src/f32-gemm/gen/6x8s4-neonfma.c
index 310afec..e9aa920 100644
--- a/src/f32-gemm/gen/6x8s4-neonfma.c
+++ b/src/f32-gemm/gen/6x8s4-neonfma.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/6x8s4-psimd.c b/src/f32-gemm/gen/6x8s4-psimd.c
index 7a8d707..2350f18 100644
--- a/src/f32-gemm/gen/6x8s4-psimd.c
+++ b/src/f32-gemm/gen/6x8s4-psimd.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-gemm/gen/7x16-avx512f-broadcast.c b/src/f32-gemm/gen/7x16-avx512f-broadcast.c
index 383d74c..70d4809 100644
--- a/src/f32-gemm/gen/7x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/7x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen/7x8-avx-broadcast.c b/src/f32-gemm/gen/7x8-avx-broadcast.c
index ed6745d..9efd526 100644
--- a/src/f32-gemm/gen/7x8-avx-broadcast.c
+++ b/src/f32-gemm/gen/7x8-avx-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen/7x8-fma3-broadcast.c b/src/f32-gemm/gen/7x8-fma3-broadcast.c
index 4f0d223..9ed62f9 100644
--- a/src/f32-gemm/gen/7x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/7x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-gemm/gen/8x16-avx512f-broadcast.c b/src/f32-gemm/gen/8x16-avx512f-broadcast.c
index 1014bfd..7f445d4 100644
--- a/src/f32-gemm/gen/8x16-avx512f-broadcast.c
+++ b/src/f32-gemm/gen/8x16-avx512f-broadcast.c
@@ -25,7 +25,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen/8x8-fma3-broadcast.c b/src/f32-gemm/gen/8x8-fma3-broadcast.c
index c4ef3d5..68895de 100644
--- a/src/f32-gemm/gen/8x8-fma3-broadcast.c
+++ b/src/f32-gemm/gen/8x8-fma3-broadcast.c
@@ -24,7 +24,7 @@
     float*restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen/8x8s4-neon.c b/src/f32-gemm/gen/8x8s4-neon.c
index 75e8c1f..8f24a32 100644
--- a/src/f32-gemm/gen/8x8s4-neon.c
+++ b/src/f32-gemm/gen/8x8s4-neon.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/gen/8x8s4-neonfma.c b/src/f32-gemm/gen/8x8s4-neonfma.c
index e208a2e..0cbb90c 100644
--- a/src/f32-gemm/gen/8x8s4-neonfma.c
+++ b/src/f32-gemm/gen/8x8s4-neonfma.c
@@ -25,7 +25,7 @@
     float* restrict c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-gemm/neon-ld128.c.in b/src/f32-gemm/neon-ld128.c.in
index 2f1b7b7..eaaefb4 100644
--- a/src/f32-gemm/neon-ld128.c.in
+++ b/src/f32-gemm/neon-ld128.c.in
@@ -27,7 +27,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/neon-ld64.c.in b/src/f32-gemm/neon-ld64.c.in
index 304d37a..99cef67 100644
--- a/src/f32-gemm/neon-ld64.c.in
+++ b/src/f32-gemm/neon-ld64.c.in
@@ -27,7 +27,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/neon-shuffle.c.in b/src/f32-gemm/neon-shuffle.c.in
index 0452205..82b60ca 100644
--- a/src/f32-gemm/neon-shuffle.c.in
+++ b/src/f32-gemm/neon-shuffle.c.in
@@ -26,7 +26,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/psimd-loadsplat.c.in b/src/f32-gemm/psimd-loadsplat.c.in
index 5a6a1e4..ee70186 100644
--- a/src/f32-gemm/psimd-loadsplat.c.in
+++ b/src/f32-gemm/psimd-loadsplat.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/psimd-s4.c.in b/src/f32-gemm/psimd-s4.c.in
index 92355c9..5c17482 100644
--- a/src/f32-gemm/psimd-s4.c.in
+++ b/src/f32-gemm/psimd-s4.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/psimd-splat.c.in b/src/f32-gemm/psimd-splat.c.in
index 9226044..5cc4542 100644
--- a/src/f32-gemm/psimd-splat.c.in
+++ b/src/f32-gemm/psimd-splat.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/scalar.c.in b/src/f32-gemm/scalar.c.in
index 90d703f..690ca0f 100644
--- a/src/f32-gemm/scalar.c.in
+++ b/src/f32-gemm/scalar.c.in
@@ -23,7 +23,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/sse-dup.c.in b/src/f32-gemm/sse-dup.c.in
index c866601..c99f08a 100644
--- a/src/f32-gemm/sse-dup.c.in
+++ b/src/f32-gemm/sse-dup.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/sse-load1.c.in b/src/f32-gemm/sse-load1.c.in
index 4666dbd..424899e 100644
--- a/src/f32-gemm/sse-load1.c.in
+++ b/src/f32-gemm/sse-load1.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-gemm/sse-shuffle.c.in b/src/f32-gemm/sse-shuffle.c.in
index 3a73864..ede4e10 100644
--- a/src/f32-gemm/sse-shuffle.c.in
+++ b/src/f32-gemm/sse-shuffle.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     $if INC:
       const float*restrict acc,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S
index d09c073..025c9ff 100644
--- a/src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -45,7 +45,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S
index 5c4245e..b6f868f 100644
--- a/src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -38,7 +38,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in
index 9b5a8be..c4875bd 100644
--- a/src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -36,7 +36,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S
index daafff3..2fb4e11 100644
--- a/src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> (x8)
+#     const xnn_f32_minmax_params params [sp + 24] -> (x8)
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -69,7 +69,7 @@
         STP d10, d11, [sp, 16]
         STP d14, d15, [sp, 32]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Clamp C pointers
diff --git a/src/f32-igemm/4x8-aarch32-neon-cortex-a53.S b/src/f32-igemm/4x8-aarch32-neon-cortex-a53.S
index d41584a..27fcb30 100644
--- a/src/f32-igemm/4x8-aarch32-neon-cortex-a53.S
+++ b/src/f32-igemm/4x8-aarch32-neon-cortex-a53.S
@@ -19,7 +19,7 @@
 //     size_t cn_stride,         sp + 128 -> (r0)
 //     size_t a_offset,          sp + 132 -> (r5)
 //     const float* zero,        sp + 136 -> (r0)
-//     output_params*params,     sp + 140 -> (r5)
+//     minmax_params*params,     sp + 140 -> (r5)
 
 // inner loop registers
 // r0, r2   scratch temporaries for loads
@@ -375,11 +375,11 @@
 
         // Load params pointer
         LDR          r0, [sp, 128]   // cn_stride
-        LDR          r2, [sp, 140]   // clamping_params
+        LDR          r2, [sp, 140]   // params
         LDR         r14, [sp, 72]    // p = ks
         SUBS         r1, r1, 8
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r2]!
         VLD1.32     {d6[],d7[]}, [r2]
 
diff --git a/src/f32-igemm/4x8-aarch32-neon-cortex-a55.S b/src/f32-igemm/4x8-aarch32-neon-cortex-a55.S
index 1f34307..c32484e 100644
--- a/src/f32-igemm/4x8-aarch32-neon-cortex-a55.S
+++ b/src/f32-igemm/4x8-aarch32-neon-cortex-a55.S
@@ -19,7 +19,7 @@
 //     size_t cn_stride,         sp + 120 -> (r0)
 //     size_t a_offset,          sp + 124 -> (r5)
 //     const float* zero,        sp + 128 -> (r0)
-//     output_params*params,     sp + 132 -> (r5)
+//     minmax_params*params,     sp + 132 -> (r5)
 
 // inner loop registers
 
@@ -309,9 +309,9 @@
         BHI 1b
 
         // Load params pointer
-        LDR          r0, [sp, 132]   // clamping_params
+        LDR          r0, [sp, 132]   // params
         LDR         r14, [sp, 64]    // p = ks
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r0]!
         VLD1.32     {d6[],d7[]}, [r0]
         SUBS         r1, r1, 8
diff --git a/src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in b/src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in
index 8c6a075..657ae28 100644
--- a/src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in
+++ b/src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in
@@ -19,7 +19,7 @@
 //     size_t cn_stride,         sp + 128 -> (r7)
 //     size_t a_offset,          sp + 132 -> (r5)
 //     const float* zero,        sp + 136 -> (r7)
-//     output_params*params,     sp + 140 -> (r5)
+//     minmax_params*params,     sp + 140 -> (r5)
 
 // inner loop registers
 
@@ -252,11 +252,11 @@
         BHI 1b
 
         // Load params pointer
-        LDR          r5, [sp, 140]   // clamping_params
+        LDR          r5, [sp, 140]   // params
         LDR          r7, [sp, 128]   // cn_stride
         LDR         r14, [sp, 72]    // p = ks
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-igemm/4x8-aarch32-neon-ld64.S b/src/f32-igemm/4x8-aarch32-neon-ld64.S
index 5f65a78..5fcd8e0 100644
--- a/src/f32-igemm/4x8-aarch32-neon-ld64.S
+++ b/src/f32-igemm/4x8-aarch32-neon-ld64.S
@@ -19,7 +19,7 @@
 //     size_t cn_stride,         sp + 128 -> (r7)
 //     size_t a_offset,          sp + 132 -> (r5)
 //     const float* zero,        sp + 136 -> (r7)
-//     output_params*params,     sp + 140 -> (r5)
+//     minmax_params*params,     sp + 140 -> (r5)
 
 // inner loop registers
 
@@ -54,7 +54,7 @@
         LDR         r6, [sp, 124]    // cm_stride
         LDR         r2, [sp, 112]    // a
         LDR         r9, [sp, 116]    // w
-        LDR         r5, [sp, 140]    // clamping_params
+        LDR         r5, [sp, 140]    // params
         MOV        r14, r3           // p = ks
 
         // Clamp C pointers
@@ -68,7 +68,7 @@
         ADD         r6, r8, r6            //   c3 = c2 + cm_stride
         MOVLO       r6, r8                // c3
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[], d5[]}, [r5]!
         VLD1.32     {d6[], d7[]}, [r5]
 
diff --git a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S
index 17ff86e..dfbfb13 100644
--- a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -81,7 +81,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         // Save x19, d12-d15 on stack
diff --git a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S
index c337997..5903647 100644
--- a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -81,7 +81,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         // Save x19, d12-d15 on stack
diff --git a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in
index 100163a..dcb42e6 100644
--- a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -57,7 +57,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save x20 on stack
@@ -303,7 +303,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in
index 0979684..d7c63f3 100644
--- a/src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # 5x8 strips the following out of 5x8
 # x23 a5
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S
index 9dd04ee..e5744e1 100644
--- a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S
+++ b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -88,7 +88,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         // Save x19-x23, d12-d15 on stack
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S
index 6e3fa33..be7f620 100644
--- a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S
+++ b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -88,7 +88,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         // Save x19-x23, d12-d15 on stack
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S
index 197fd4f..a82343c 100644
--- a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S
+++ b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -98,7 +98,7 @@
         # Load cn_stride, a_offset
         LDP x10, x11, [sp, 96]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
 0:
@@ -410,7 +410,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in
index 48257d9..8d053d3 100644
--- a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in
+++ b/src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -416,7 +416,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -492,7 +492,7 @@
         RET
 
 5:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-ios.S.in b/src/f32-igemm/6x8-aarch64-neonfma-ios.S.in
index 7dbf53f..b219f82 100644
--- a/src/f32-igemm/6x8-aarch64-neonfma-ios.S.in
+++ b/src/f32-igemm/6x8-aarch64-neonfma-ios.S.in
@@ -17,7 +17,7 @@
 #     size_t cn_stride,                  [sp] -> (x0)
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -416,7 +416,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -494,7 +494,7 @@
         RET
 
 5:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-igemm/MRx2-neon-ld64.c.in b/src/f32-igemm/MRx2-neon-ld64.c.in
index c961565..1323bdc 100644
--- a/src/f32-igemm/MRx2-neon-ld64.c.in
+++ b/src/f32-igemm/MRx2-neon-ld64.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/MRx2c4-psimd.c.in b/src/f32-igemm/MRx2c4-psimd.c.in
index 730a3fc..1a80daf 100644
--- a/src/f32-igemm/MRx2c4-psimd.c.in
+++ b/src/f32-igemm/MRx2c4-psimd.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/MRx2c4-sse.c.in b/src/f32-igemm/MRx2c4-sse.c.in
index 93e9919..eecfe12 100644
--- a/src/f32-igemm/MRx2c4-sse.c.in
+++ b/src/f32-igemm/MRx2c4-sse.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/avx-broadcast.c.in b/src/f32-igemm/avx-broadcast.c.in
index 28f279a..4398bc7 100644
--- a/src/f32-igemm/avx-broadcast.c.in
+++ b/src/f32-igemm/avx-broadcast.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/avx-shuffle4.c.in b/src/f32-igemm/avx-shuffle4.c.in
index 29be248..579464a 100644
--- a/src/f32-igemm/avx-shuffle4.c.in
+++ b/src/f32-igemm/avx-shuffle4.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/avx512-broadcast.c.in b/src/f32-igemm/avx512-broadcast.c.in
index f3ab0bf..633df46 100644
--- a/src/f32-igemm/avx512-broadcast.c.in
+++ b/src/f32-igemm/avx512-broadcast.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/gen/1x16-avx-broadcast.c b/src/f32-igemm/gen/1x16-avx-broadcast.c
index 86a8ee1..d63b5ae 100644
--- a/src/f32-igemm/gen/1x16-avx-broadcast.c
+++ b/src/f32-igemm/gen/1x16-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x16-avx512f-broadcast.c b/src/f32-igemm/gen/1x16-avx512f-broadcast.c
index c15a520..d0d2469 100644
--- a/src/f32-igemm/gen/1x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/1x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x16-fma3-broadcast.c b/src/f32-igemm/gen/1x16-fma3-broadcast.c
index faa086b..c01319e 100644
--- a/src/f32-igemm/gen/1x16-fma3-broadcast.c
+++ b/src/f32-igemm/gen/1x16-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x16s4-fma3-broadcast.c b/src/f32-igemm/gen/1x16s4-fma3-broadcast.c
index 724fec3..cdcbdaf 100644
--- a/src/f32-igemm/gen/1x16s4-fma3-broadcast.c
+++ b/src/f32-igemm/gen/1x16s4-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x4-scalar.c b/src/f32-igemm/gen/1x4-scalar.c
index bf621ca..7048c9c 100644
--- a/src/f32-igemm/gen/1x4-scalar.c
+++ b/src/f32-igemm/gen/1x4-scalar.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x4-wasm.c b/src/f32-igemm/gen/1x4-wasm.c
index 79d8c42..0e4d3fa 100644
--- a/src/f32-igemm/gen/1x4-wasm.c
+++ b/src/f32-igemm/gen/1x4-wasm.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
index f1d935b..fd8b37b 100644
--- a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -40,7 +40,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
index 9f2238a..7a069e2 100644
--- a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -40,7 +40,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v30.4s, v31.4s}, [x8]
 
 0:
diff --git a/src/f32-igemm/gen/1x8-avx-broadcast.c b/src/f32-igemm/gen/1x8-avx-broadcast.c
index 4b760bc..cf3d929 100644
--- a/src/f32-igemm/gen/1x8-avx-broadcast.c
+++ b/src/f32-igemm/gen/1x8-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-fma3-broadcast.c b/src/f32-igemm/gen/1x8-fma3-broadcast.c
index 113bbba..7b5f2d3 100644
--- a/src/f32-igemm/gen/1x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/1x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-neon-dup-ld64.c b/src/f32-igemm/gen/1x8-neon-dup-ld64.c
index 714f55e..c968ee0 100644
--- a/src/f32-igemm/gen/1x8-neon-dup-ld64.c
+++ b/src/f32-igemm/gen/1x8-neon-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-neon-lane-ld64.c b/src/f32-igemm/gen/1x8-neon-lane-ld64.c
index 157b73b..8cdcba2 100644
--- a/src/f32-igemm/gen/1x8-neon-lane-ld64.c
+++ b/src/f32-igemm/gen/1x8-neon-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
index 73dbc98..8acf7fe 100644
--- a/src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
+++ b/src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
index 78095b9..5a8232d 100644
--- a/src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
+++ b/src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-psimd-loadsplat.c b/src/f32-igemm/gen/1x8-psimd-loadsplat.c
index f8fa1de..066e097 100644
--- a/src/f32-igemm/gen/1x8-psimd-loadsplat.c
+++ b/src/f32-igemm/gen/1x8-psimd-loadsplat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-psimd-splat.c b/src/f32-igemm/gen/1x8-psimd-splat.c
index e78bbbc..e912c89 100644
--- a/src/f32-igemm/gen/1x8-psimd-splat.c
+++ b/src/f32-igemm/gen/1x8-psimd-splat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-sse-dup.c b/src/f32-igemm/gen/1x8-sse-dup.c
index 25abb12..bb1d92a 100644
--- a/src/f32-igemm/gen/1x8-sse-dup.c
+++ b/src/f32-igemm/gen/1x8-sse-dup.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8-sse-load1.c b/src/f32-igemm/gen/1x8-sse-load1.c
index 3c6f5f0..836f598 100644
--- a/src/f32-igemm/gen/1x8-sse-load1.c
+++ b/src/f32-igemm/gen/1x8-sse-load1.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8s4-neon.c b/src/f32-igemm/gen/1x8s4-neon.c
index 12304dd..1ce101e 100644
--- a/src/f32-igemm/gen/1x8s4-neon.c
+++ b/src/f32-igemm/gen/1x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8s4-neonfma.c b/src/f32-igemm/gen/1x8s4-neonfma.c
index b63f65e..e7d2ea6 100644
--- a/src/f32-igemm/gen/1x8s4-neonfma.c
+++ b/src/f32-igemm/gen/1x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8s4-psimd.c b/src/f32-igemm/gen/1x8s4-psimd.c
index 96a0b27..c5b20cf 100644
--- a/src/f32-igemm/gen/1x8s4-psimd.c
+++ b/src/f32-igemm/gen/1x8s4-psimd.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/1x8s4-sse.c b/src/f32-igemm/gen/1x8s4-sse.c
index 9f476ea..5d8682d 100644
--- a/src/f32-igemm/gen/1x8s4-sse.c
+++ b/src/f32-igemm/gen/1x8s4-sse.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 1);
diff --git a/src/f32-igemm/gen/2x4-scalar.c b/src/f32-igemm/gen/2x4-scalar.c
index 533dba0..f5bc618 100644
--- a/src/f32-igemm/gen/2x4-scalar.c
+++ b/src/f32-igemm/gen/2x4-scalar.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-igemm/gen/2x4-wasm.c b/src/f32-igemm/gen/2x4-wasm.c
index 5347636..8ce12ab 100644
--- a/src/f32-igemm/gen/2x4-wasm.c
+++ b/src/f32-igemm/gen/2x4-wasm.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-igemm/gen/3x16-avx-broadcast.c b/src/f32-igemm/gen/3x16-avx-broadcast.c
index 5cda186..221bf7a 100644
--- a/src/f32-igemm/gen/3x16-avx-broadcast.c
+++ b/src/f32-igemm/gen/3x16-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-igemm/gen/3x16-fma3-broadcast.c b/src/f32-igemm/gen/3x16-fma3-broadcast.c
index 3e16f46..be13de6 100644
--- a/src/f32-igemm/gen/3x16-fma3-broadcast.c
+++ b/src/f32-igemm/gen/3x16-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-igemm/gen/3x16s4-fma3-broadcast.c b/src/f32-igemm/gen/3x16s4-fma3-broadcast.c
index 3928445..0d09c32 100644
--- a/src/f32-igemm/gen/3x16s4-fma3-broadcast.c
+++ b/src/f32-igemm/gen/3x16s4-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-igemm/gen/4x16-avx-broadcast.c b/src/f32-igemm/gen/4x16-avx-broadcast.c
index a9e4739..00be044 100644
--- a/src/f32-igemm/gen/4x16-avx-broadcast.c
+++ b/src/f32-igemm/gen/4x16-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x16-avx512f-broadcast.c b/src/f32-igemm/gen/4x16-avx512f-broadcast.c
index cf2dec8..bb3eaae 100644
--- a/src/f32-igemm/gen/4x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/4x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x16-fma3-broadcast.c b/src/f32-igemm/gen/4x16-fma3-broadcast.c
index 874f1bc..02cc10178 100644
--- a/src/f32-igemm/gen/4x16-fma3-broadcast.c
+++ b/src/f32-igemm/gen/4x16-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x16s4-fma3-broadcast.c b/src/f32-igemm/gen/4x16s4-fma3-broadcast.c
index 78f8122..46953d5 100644
--- a/src/f32-igemm/gen/4x16s4-fma3-broadcast.c
+++ b/src/f32-igemm/gen/4x16s4-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2-neon-lane-ld64.c b/src/f32-igemm/gen/4x2-neon-lane-ld64.c
index f8df12c..697286b 100644
--- a/src/f32-igemm/gen/4x2-neon-lane-ld64.c
+++ b/src/f32-igemm/gen/4x2-neon-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
index c708a03..677a3bc 100644
--- a/src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
+++ b/src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2-scalar.c b/src/f32-igemm/gen/4x2-scalar.c
index d241c7e..207ce7c 100644
--- a/src/f32-igemm/gen/4x2-scalar.c
+++ b/src/f32-igemm/gen/4x2-scalar.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2-wasm.c b/src/f32-igemm/gen/4x2-wasm.c
index 7127072..e1b530f 100644
--- a/src/f32-igemm/gen/4x2-wasm.c
+++ b/src/f32-igemm/gen/4x2-wasm.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2c4-psimd.c b/src/f32-igemm/gen/4x2c4-psimd.c
index a379ab1..6b537c1 100644
--- a/src/f32-igemm/gen/4x2c4-psimd.c
+++ b/src/f32-igemm/gen/4x2c4-psimd.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x2c4-sse.c b/src/f32-igemm/gen/4x2c4-sse.c
index a4fb8fa..4b71c2e 100644
--- a/src/f32-igemm/gen/4x2c4-sse.c
+++ b/src/f32-igemm/gen/4x2c4-sse.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x4-neon-lane-ld64.c b/src/f32-igemm/gen/4x4-neon-lane-ld64.c
index b379470..ba4d1c8 100644
--- a/src/f32-igemm/gen/4x4-neon-lane-ld64.c
+++ b/src/f32-igemm/gen/4x4-neon-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x4-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
index 10992a5..915b705 100644
--- a/src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
+++ b/src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x4-scalar.c b/src/f32-igemm/gen/4x4-scalar.c
index fef9fd3..aeae819 100644
--- a/src/f32-igemm/gen/4x4-scalar.c
+++ b/src/f32-igemm/gen/4x4-scalar.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x4-wasm.c b/src/f32-igemm/gen/4x4-wasm.c
index cf6da4e..317b9d8 100644
--- a/src/f32-igemm/gen/4x4-wasm.c
+++ b/src/f32-igemm/gen/4x4-wasm.c
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S b/src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
index 5abd65d..afa9727 100644
--- a/src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
+++ b/src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
@@ -23,7 +23,7 @@
 //     size_t cn_stride,         sp + 128 -> (r7)
 //     size_t a_offset,          sp + 132 -> (r5)
 //     const float* zero,        sp + 136 -> (r7)
-//     output_params*params,     sp + 140 -> (r5)
+//     minmax_params*params,     sp + 140 -> (r5)
 
 // inner loop registers
 
@@ -228,11 +228,11 @@
         BHI 1b
 
         // Load params pointer
-        LDR          r5, [sp, 140]   // clamping_params
+        LDR          r5, [sp, 140]   // params
         LDR          r7, [sp, 128]   // cn_stride
         LDR         r14, [sp, 72]    // p = ks
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S b/src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
index cfe5f96..ce33122 100644
--- a/src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
+++ b/src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
@@ -23,7 +23,7 @@
 //     size_t cn_stride,         sp + 128 -> (r7)
 //     size_t a_offset,          sp + 132 -> (r5)
 //     const float* zero,        sp + 136 -> (r7)
-//     output_params*params,     sp + 140 -> (r5)
+//     minmax_params*params,     sp + 140 -> (r5)
 
 // inner loop registers
 
@@ -248,11 +248,11 @@
         BHI 1b
 
         // Load params pointer
-        LDR          r5, [sp, 140]   // clamping_params
+        LDR          r5, [sp, 140]   // params
         LDR          r7, [sp, 128]   // cn_stride
         LDR         r14, [sp, 72]    // p = ks
 
-        // Load clamping_params values
+        // Load min/max values
         VLD1.32     {d4[],d5[]}, [r5]!
         SUBS        r1, r1, 8
         VLD1.32     {d6[],d7[]}, [r5]
diff --git a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
index aaaf82f..bbc1b00 100644
--- a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -61,7 +61,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save x20 on stack
@@ -299,7 +299,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
index ccf8645..ac4a2a4 100644
--- a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -61,7 +61,7 @@
         # Load zero, clamping params pointer
         LDP x12, x8, [sp, 16]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         # Save x20 on stack
@@ -303,7 +303,7 @@
         FMLA v18.4s, v14.4s, v5.s[3]
         FMLA v19.4s, v15.4s, v5.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v4.4s, v5.4s}, [x8]
 
         FMLA v28.4s, v14.4s, v6.s[3]
diff --git a/src/f32-igemm/gen/4x8-avx-broadcast.c b/src/f32-igemm/gen/4x8-avx-broadcast.c
index 259f4d6..4d48c80 100644
--- a/src/f32-igemm/gen/4x8-avx-broadcast.c
+++ b/src/f32-igemm/gen/4x8-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-fma3-broadcast.c b/src/f32-igemm/gen/4x8-fma3-broadcast.c
index 537bcdf..6c26b5f 100644
--- a/src/f32-igemm/gen/4x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/4x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neon-dup-ld128.c b/src/f32-igemm/gen/4x8-neon-dup-ld128.c
index e339bee..4dcea3e 100644
--- a/src/f32-igemm/gen/4x8-neon-dup-ld128.c
+++ b/src/f32-igemm/gen/4x8-neon-dup-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neon-dup-ld64.c b/src/f32-igemm/gen/4x8-neon-dup-ld64.c
index cd53d67..e69983d 100644
--- a/src/f32-igemm/gen/4x8-neon-dup-ld64.c
+++ b/src/f32-igemm/gen/4x8-neon-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neon-lane-ld128.c b/src/f32-igemm/gen/4x8-neon-lane-ld128.c
index 31aa833..944f106 100644
--- a/src/f32-igemm/gen/4x8-neon-lane-ld128.c
+++ b/src/f32-igemm/gen/4x8-neon-lane-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neon-lane-ld64.c b/src/f32-igemm/gen/4x8-neon-lane-ld64.c
index 2fbc77a..b75c3fc 100644
--- a/src/f32-igemm/gen/4x8-neon-lane-ld64.c
+++ b/src/f32-igemm/gen/4x8-neon-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neonfma-dup-ld128.c b/src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
index 6144ec1..80e3265 100644
--- a/src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
+++ b/src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
index 6525bab..9d4eb0c 100644
--- a/src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
+++ b/src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neonfma-lane-ld128.c b/src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
index 86d2fc3..f3b9f09 100644
--- a/src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
+++ b/src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
index 5503926..8e230cf 100644
--- a/src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
+++ b/src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-psimd-loadsplat.c b/src/f32-igemm/gen/4x8-psimd-loadsplat.c
index 88948a9..c145777 100644
--- a/src/f32-igemm/gen/4x8-psimd-loadsplat.c
+++ b/src/f32-igemm/gen/4x8-psimd-loadsplat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-psimd-splat.c b/src/f32-igemm/gen/4x8-psimd-splat.c
index 6393771..c699cd5 100644
--- a/src/f32-igemm/gen/4x8-psimd-splat.c
+++ b/src/f32-igemm/gen/4x8-psimd-splat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-sse-dup.c b/src/f32-igemm/gen/4x8-sse-dup.c
index 8eb80c4..c035966 100644
--- a/src/f32-igemm/gen/4x8-sse-dup.c
+++ b/src/f32-igemm/gen/4x8-sse-dup.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8-sse-load1.c b/src/f32-igemm/gen/4x8-sse-load1.c
index 40af2db..c93f239 100644
--- a/src/f32-igemm/gen/4x8-sse-load1.c
+++ b/src/f32-igemm/gen/4x8-sse-load1.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8s4-neon.c b/src/f32-igemm/gen/4x8s4-neon.c
index a56bab6..ef18ec5 100644
--- a/src/f32-igemm/gen/4x8s4-neon.c
+++ b/src/f32-igemm/gen/4x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8s4-neonfma.c b/src/f32-igemm/gen/4x8s4-neonfma.c
index bdc8f42..e78626a 100644
--- a/src/f32-igemm/gen/4x8s4-neonfma.c
+++ b/src/f32-igemm/gen/4x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8s4-psimd.c b/src/f32-igemm/gen/4x8s4-psimd.c
index 93bb048..f639fa2 100644
--- a/src/f32-igemm/gen/4x8s4-psimd.c
+++ b/src/f32-igemm/gen/4x8s4-psimd.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/4x8s4-sse.c b/src/f32-igemm/gen/4x8s4-sse.c
index 21f1988..c0448bb 100644
--- a/src/f32-igemm/gen/4x8s4-sse.c
+++ b/src/f32-igemm/gen/4x8s4-sse.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-igemm/gen/5x16-avx-broadcast.c b/src/f32-igemm/gen/5x16-avx-broadcast.c
index 4336c8e..d04001f 100644
--- a/src/f32-igemm/gen/5x16-avx-broadcast.c
+++ b/src/f32-igemm/gen/5x16-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/5x16-avx512f-broadcast.c b/src/f32-igemm/gen/5x16-avx512f-broadcast.c
index 17a27d3..6cbb95b 100644
--- a/src/f32-igemm/gen/5x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/5x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/5x16-fma3-broadcast.c b/src/f32-igemm/gen/5x16-fma3-broadcast.c
index 471f871..12c3dce 100644
--- a/src/f32-igemm/gen/5x16-fma3-broadcast.c
+++ b/src/f32-igemm/gen/5x16-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/5x16s4-fma3-broadcast.c b/src/f32-igemm/gen/5x16s4-fma3-broadcast.c
index bd460bb..a3e18a9 100644
--- a/src/f32-igemm/gen/5x16s4-fma3-broadcast.c
+++ b/src/f32-igemm/gen/5x16s4-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
index 250bec3..85b803a 100644
--- a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # 5x8 strips the following out of 5x8
 # x23 a5
diff --git a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
index 4f64f28..b27691c 100644
--- a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # 5x8 strips the following out of 5x8
 # x23 a5
diff --git a/src/f32-igemm/gen/5x8-avx-broadcast.c b/src/f32-igemm/gen/5x8-avx-broadcast.c
index 5290cac..25dc785 100644
--- a/src/f32-igemm/gen/5x8-avx-broadcast.c
+++ b/src/f32-igemm/gen/5x8-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/5x8-fma3-broadcast.c b/src/f32-igemm/gen/5x8-fma3-broadcast.c
index 298ed86..9d177f7 100644
--- a/src/f32-igemm/gen/5x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/5x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 5);
diff --git a/src/f32-igemm/gen/6x16-avx512f-broadcast.c b/src/f32-igemm/gen/6x16-avx512f-broadcast.c
index 5c59b84..708caed 100644
--- a/src/f32-igemm/gen/6x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/6x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
index f4dfd88..bd31637 100644
--- a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
+++ b/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -404,7 +404,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -480,7 +480,7 @@
         RET
 
 5:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
index ec8403c..dc0b81f 100644
--- a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
+++ b/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> x10
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -412,7 +412,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -488,7 +488,7 @@
         RET
 
 5:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S b/src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S
index c280951..28e114d 100644
--- a/src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S
+++ b/src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S
@@ -21,7 +21,7 @@
 #     size_t cn_stride,                  [sp] -> (x0)
 #     size_t a_offset,                   [sp + 8] -> x11
 #     const float* zero,                 [sp + 16] -> x12
-#     const xnn_f32_output_params params [sp + 24] -> x8
+#     const xnn_f32_minmax_params params [sp + 24] -> x8
 
 # d8-d15 need to be preserved if used.
 # x19-30 need to be preserved if used.
@@ -404,7 +404,7 @@
         FMLA v21.4s, v19.4s,  v6.s[3]
         FMLA v23.4s, v19.4s,  v7.s[3]
 
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         FMLA v25.4s, v19.4s,  v8.s[3]
@@ -482,7 +482,7 @@
         RET
 
 5:
-        # Load clamping_params values
+        # Load min/max values
         LD2R {v6.4s, v7.4s}, [x8]
 
         # Is there a remainder?- 4 floats of A (16 bytes)
diff --git a/src/f32-igemm/gen/6x8-avx-broadcast.c b/src/f32-igemm/gen/6x8-avx-broadcast.c
index 6f1f6dc..562da92 100644
--- a/src/f32-igemm/gen/6x8-avx-broadcast.c
+++ b/src/f32-igemm/gen/6x8-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-fma3-broadcast.c b/src/f32-igemm/gen/6x8-fma3-broadcast.c
index 9d16854..abfef05 100644
--- a/src/f32-igemm/gen/6x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/6x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neon-dup-ld128.c b/src/f32-igemm/gen/6x8-neon-dup-ld128.c
index 5abb24f..232a61c 100644
--- a/src/f32-igemm/gen/6x8-neon-dup-ld128.c
+++ b/src/f32-igemm/gen/6x8-neon-dup-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neon-dup-ld64.c b/src/f32-igemm/gen/6x8-neon-dup-ld64.c
index 909c0bf..28fe98a 100644
--- a/src/f32-igemm/gen/6x8-neon-dup-ld64.c
+++ b/src/f32-igemm/gen/6x8-neon-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neon-lane-ld128.c b/src/f32-igemm/gen/6x8-neon-lane-ld128.c
index 0291164..f81aa55 100644
--- a/src/f32-igemm/gen/6x8-neon-lane-ld128.c
+++ b/src/f32-igemm/gen/6x8-neon-lane-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neon-lane-ld64.c b/src/f32-igemm/gen/6x8-neon-lane-ld64.c
index ec13852..ab1479d 100644
--- a/src/f32-igemm/gen/6x8-neon-lane-ld64.c
+++ b/src/f32-igemm/gen/6x8-neon-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neonfma-dup-ld128.c b/src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
index e3d047e..ced5aca 100644
--- a/src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
+++ b/src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
index 2b2ce9f..373c75e 100644
--- a/src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
+++ b/src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neonfma-lane-ld128.c b/src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
index 2a6bb5b..8f23fb9 100644
--- a/src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
+++ b/src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
index 9fd0562..4a1a27b 100644
--- a/src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
+++ b/src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-psimd-loadsplat.c b/src/f32-igemm/gen/6x8-psimd-loadsplat.c
index 04b7f71..b48c3b2 100644
--- a/src/f32-igemm/gen/6x8-psimd-loadsplat.c
+++ b/src/f32-igemm/gen/6x8-psimd-loadsplat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8-psimd-splat.c b/src/f32-igemm/gen/6x8-psimd-splat.c
index 4d0a483..0d593ed 100644
--- a/src/f32-igemm/gen/6x8-psimd-splat.c
+++ b/src/f32-igemm/gen/6x8-psimd-splat.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8s4-neon.c b/src/f32-igemm/gen/6x8s4-neon.c
index 881eb88..34614ab 100644
--- a/src/f32-igemm/gen/6x8s4-neon.c
+++ b/src/f32-igemm/gen/6x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8s4-neonfma.c b/src/f32-igemm/gen/6x8s4-neonfma.c
index 61d7af1..a6b9dc6 100644
--- a/src/f32-igemm/gen/6x8s4-neonfma.c
+++ b/src/f32-igemm/gen/6x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/6x8s4-psimd.c b/src/f32-igemm/gen/6x8s4-psimd.c
index 465dc95..5f94d97 100644
--- a/src/f32-igemm/gen/6x8s4-psimd.c
+++ b/src/f32-igemm/gen/6x8s4-psimd.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 6);
diff --git a/src/f32-igemm/gen/7x16-avx512f-broadcast.c b/src/f32-igemm/gen/7x16-avx512f-broadcast.c
index b6a8b0a..d7ba85b 100644
--- a/src/f32-igemm/gen/7x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/7x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-igemm/gen/7x8-avx-broadcast.c b/src/f32-igemm/gen/7x8-avx-broadcast.c
index 8a56961..b4e94aa 100644
--- a/src/f32-igemm/gen/7x8-avx-broadcast.c
+++ b/src/f32-igemm/gen/7x8-avx-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-igemm/gen/7x8-fma3-broadcast.c b/src/f32-igemm/gen/7x8-fma3-broadcast.c
index 89b17f3..8e0c166 100644
--- a/src/f32-igemm/gen/7x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/7x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 7);
diff --git a/src/f32-igemm/gen/8x16-avx512f-broadcast.c b/src/f32-igemm/gen/8x16-avx512f-broadcast.c
index f133bbd..d775030 100644
--- a/src/f32-igemm/gen/8x16-avx512f-broadcast.c
+++ b/src/f32-igemm/gen/8x16-avx512f-broadcast.c
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-igemm/gen/8x8-fma3-broadcast.c b/src/f32-igemm/gen/8x8-fma3-broadcast.c
index 7cb4625..5309b43 100644
--- a/src/f32-igemm/gen/8x8-fma3-broadcast.c
+++ b/src/f32-igemm/gen/8x8-fma3-broadcast.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-igemm/gen/8x8s4-neon.c b/src/f32-igemm/gen/8x8s4-neon.c
index 2a4439c..ac23ebe 100644
--- a/src/f32-igemm/gen/8x8s4-neon.c
+++ b/src/f32-igemm/gen/8x8s4-neon.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-igemm/gen/8x8s4-neonfma.c b/src/f32-igemm/gen/8x8s4-neonfma.c
index 4787568..8817efd 100644
--- a/src/f32-igemm/gen/8x8s4-neonfma.c
+++ b/src/f32-igemm/gen/8x8s4-neonfma.c
@@ -26,7 +26,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-igemm/neon-ld128.c.in b/src/f32-igemm/neon-ld128.c.in
index 157e5ad..7e4a736 100644
--- a/src/f32-igemm/neon-ld128.c.in
+++ b/src/f32-igemm/neon-ld128.c.in
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/neon-ld64.c.in b/src/f32-igemm/neon-ld64.c.in
index 98ad4f2..0bee7ec 100644
--- a/src/f32-igemm/neon-ld64.c.in
+++ b/src/f32-igemm/neon-ld64.c.in
@@ -27,7 +27,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/neon-shuffle.c.in b/src/f32-igemm/neon-shuffle.c.in
index 9f71b02..52f8e36 100644
--- a/src/f32-igemm/neon-shuffle.c.in
+++ b/src/f32-igemm/neon-shuffle.c.in
@@ -25,7 +25,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/psimd-loadsplat.c.in b/src/f32-igemm/psimd-loadsplat.c.in
index d9c9d5f..0c3550b 100644
--- a/src/f32-igemm/psimd-loadsplat.c.in
+++ b/src/f32-igemm/psimd-loadsplat.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/psimd-s4.c.in b/src/f32-igemm/psimd-s4.c.in
index 94ed408..70f36f9 100644
--- a/src/f32-igemm/psimd-s4.c.in
+++ b/src/f32-igemm/psimd-s4.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/psimd-splat.c.in b/src/f32-igemm/psimd-splat.c.in
index 08f76e0..a73b0c4 100644
--- a/src/f32-igemm/psimd-splat.c.in
+++ b/src/f32-igemm/psimd-splat.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/scalar.c.in b/src/f32-igemm/scalar.c.in
index d713f51..f7e6e88 100644
--- a/src/f32-igemm/scalar.c.in
+++ b/src/f32-igemm/scalar.c.in
@@ -23,7 +23,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/sse-dup.c.in b/src/f32-igemm/sse-dup.c.in
index 36b244e..092b5a7 100644
--- a/src/f32-igemm/sse-dup.c.in
+++ b/src/f32-igemm/sse-dup.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/sse-load1.c.in b/src/f32-igemm/sse-load1.c.in
index 0d92add..2956f66 100644
--- a/src/f32-igemm/sse-load1.c.in
+++ b/src/f32-igemm/sse-load1.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-igemm/sse-shuffle.c.in b/src/f32-igemm/sse-shuffle.c.in
index b95f07e..9e1876c 100644
--- a/src/f32-igemm/sse-shuffle.c.in
+++ b/src/f32-igemm/sse-shuffle.c.in
@@ -24,7 +24,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-maxpool/9p8x-neon-c4.c b/src/f32-maxpool/9p8x-neon-c4.c
index b27d12d..f8e8fb6 100644
--- a/src/f32-maxpool/9p8x-neon-c4.c
+++ b/src/f32-maxpool/9p8x-neon-c4.c
@@ -19,7 +19,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-maxpool/9p8x-psimd-c4.c b/src/f32-maxpool/9p8x-psimd-c4.c
index a502c90..9b90aca 100644
--- a/src/f32-maxpool/9p8x-psimd-c4.c
+++ b/src/f32-maxpool/9p8x-psimd-c4.c
@@ -19,7 +19,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-maxpool/9p8x-scalar-c1.c b/src/f32-maxpool/9p8x-scalar-c1.c
index fec4483..7e7041e 100644
--- a/src/f32-maxpool/9p8x-scalar-c1.c
+++ b/src/f32-maxpool/9p8x-scalar-c1.c
@@ -18,7 +18,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-maxpool/9p8x-sse-c4.c b/src/f32-maxpool/9p8x-sse-c4.c
index 54fb78d..f8704c6 100644
--- a/src/f32-maxpool/9p8x-sse-c4.c
+++ b/src/f32-maxpool/9p8x-sse-c4.c
@@ -19,7 +19,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-maxpool/9p8x-wasm-c1.c b/src/f32-maxpool/9p8x-wasm-c1.c
index fcad9e5..c0ca112 100644
--- a/src/f32-maxpool/9p8x-wasm-c1.c
+++ b/src/f32-maxpool/9p8x-wasm-c1.c
@@ -18,7 +18,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-pavgpool/9p8x-neon-c4.c b/src/f32-pavgpool/9p8x-neon-c4.c
index ab7f563..c1a1aa0 100644
--- a/src/f32-pavgpool/9p8x-neon-c4.c
+++ b/src/f32-pavgpool/9p8x-neon-c4.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements > 9);
diff --git a/src/f32-pavgpool/9p8x-psimd-c4.c b/src/f32-pavgpool/9p8x-psimd-c4.c
index 974a1c8..e5fda7e 100644
--- a/src/f32-pavgpool/9p8x-psimd-c4.c
+++ b/src/f32-pavgpool/9p8x-psimd-c4.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements > 9);
diff --git a/src/f32-pavgpool/9p8x-scalar-c1.c b/src/f32-pavgpool/9p8x-scalar-c1.c
index b532885..53de16c 100644
--- a/src/f32-pavgpool/9p8x-scalar-c1.c
+++ b/src/f32-pavgpool/9p8x-scalar-c1.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements > 9);
diff --git a/src/f32-pavgpool/9p8x-sse-c4.c b/src/f32-pavgpool/9p8x-sse-c4.c
index d669815..279394c 100644
--- a/src/f32-pavgpool/9p8x-sse-c4.c
+++ b/src/f32-pavgpool/9p8x-sse-c4.c
@@ -22,7 +22,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements > 9);
diff --git a/src/f32-pavgpool/9p8x-wasm-c1.c b/src/f32-pavgpool/9p8x-wasm-c1.c
index 4bdd89e..9cbb68f 100644
--- a/src/f32-pavgpool/9p8x-wasm-c1.c
+++ b/src/f32-pavgpool/9p8x-wasm-c1.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements > 9);
diff --git a/src/f32-pavgpool/9x-neon-c4.c b/src/f32-pavgpool/9x-neon-c4.c
index 6df4a24..27a33fc 100644
--- a/src/f32-pavgpool/9x-neon-c4.c
+++ b/src/f32-pavgpool/9x-neon-c4.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-pavgpool/9x-psimd-c4.c b/src/f32-pavgpool/9x-psimd-c4.c
index 037c5c6..a138fec 100644
--- a/src/f32-pavgpool/9x-psimd-c4.c
+++ b/src/f32-pavgpool/9x-psimd-c4.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-pavgpool/9x-scalar-c1.c b/src/f32-pavgpool/9x-scalar-c1.c
index d1c1c24..b3fbb04 100644
--- a/src/f32-pavgpool/9x-scalar-c1.c
+++ b/src/f32-pavgpool/9x-scalar-c1.c
@@ -20,7 +20,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-pavgpool/9x-sse-c4.c b/src/f32-pavgpool/9x-sse-c4.c
index 3744655..83a6a7d 100644
--- a/src/f32-pavgpool/9x-sse-c4.c
+++ b/src/f32-pavgpool/9x-sse-c4.c
@@ -21,7 +21,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-pavgpool/9x-wasm-c1.c b/src/f32-pavgpool/9x-wasm-c1.c
index 9ee2026..cb962f4 100644
--- a/src/f32-pavgpool/9x-wasm-c1.c
+++ b/src/f32-pavgpool/9x-wasm-c1.c
@@ -20,7 +20,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/f32-ppmm/gen/2x4-scalar.c b/src/f32-ppmm/gen/2x4-scalar.c
index 583262f..ce023ea 100644
--- a/src/f32-ppmm/gen/2x4-scalar.c
+++ b/src/f32-ppmm/gen/2x4-scalar.c
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 2);
diff --git a/src/f32-ppmm/gen/3x3-scalar.c b/src/f32-ppmm/gen/3x3-scalar.c
index bc1f53b..edf756c 100644
--- a/src/f32-ppmm/gen/3x3-scalar.c
+++ b/src/f32-ppmm/gen/3x3-scalar.c
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 3);
diff --git a/src/f32-ppmm/gen/4x2-scalar.c b/src/f32-ppmm/gen/4x2-scalar.c
index d236fd6..4ec2300 100644
--- a/src/f32-ppmm/gen/4x2-scalar.c
+++ b/src/f32-ppmm/gen/4x2-scalar.c
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/4x4-scalar.c b/src/f32-ppmm/gen/4x4-scalar.c
index f8df14c..38b725b 100644
--- a/src/f32-ppmm/gen/4x4-scalar.c
+++ b/src/f32-ppmm/gen/4x4-scalar.c
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/4x8-neon.c b/src/f32-ppmm/gen/4x8-neon.c
index 6e75184..ff84229 100644
--- a/src/f32-ppmm/gen/4x8-neon.c
+++ b/src/f32-ppmm/gen/4x8-neon.c
@@ -24,7 +24,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/4x8-neonfma.c b/src/f32-ppmm/gen/4x8-neonfma.c
index 4cacaea..33420ee 100644
--- a/src/f32-ppmm/gen/4x8-neonfma.c
+++ b/src/f32-ppmm/gen/4x8-neonfma.c
@@ -24,7 +24,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/4x8-psimd.c b/src/f32-ppmm/gen/4x8-psimd.c
index dbfca63..90ea2fe 100644
--- a/src/f32-ppmm/gen/4x8-psimd.c
+++ b/src/f32-ppmm/gen/4x8-psimd.c
@@ -23,7 +23,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/4x8-sse.c b/src/f32-ppmm/gen/4x8-sse.c
index 31fa8dd..f714af1 100644
--- a/src/f32-ppmm/gen/4x8-sse.c
+++ b/src/f32-ppmm/gen/4x8-sse.c
@@ -23,7 +23,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 4);
diff --git a/src/f32-ppmm/gen/8x8-neon.c b/src/f32-ppmm/gen/8x8-neon.c
index 1fd1467..2c89767 100644
--- a/src/f32-ppmm/gen/8x8-neon.c
+++ b/src/f32-ppmm/gen/8x8-neon.c
@@ -24,7 +24,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-ppmm/gen/8x8-neonfma.c b/src/f32-ppmm/gen/8x8-neonfma.c
index 36dcb27..3e22786 100644
--- a/src/f32-ppmm/gen/8x8-neonfma.c
+++ b/src/f32-ppmm/gen/8x8-neonfma.c
@@ -24,7 +24,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= 8);
diff --git a/src/f32-ppmm/neon.c.in b/src/f32-ppmm/neon.c.in
index dc5a952..70ef008 100644
--- a/src/f32-ppmm/neon.c.in
+++ b/src/f32-ppmm/neon.c.in
@@ -23,7 +23,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-ppmm/psimd.c.in b/src/f32-ppmm/psimd.c.in
index 5419003..3c20f65 100644
--- a/src/f32-ppmm/psimd.c.in
+++ b/src/f32-ppmm/psimd.c.in
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-ppmm/scalar.c.in b/src/f32-ppmm/scalar.c.in
index 9350695..9feafe0 100644
--- a/src/f32-ppmm/scalar.c.in
+++ b/src/f32-ppmm/scalar.c.in
@@ -18,7 +18,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-ppmm/sse.c.in b/src/f32-ppmm/sse.c.in
index 479078b..f4c08cd 100644
--- a/src/f32-ppmm/sse.c.in
+++ b/src/f32-ppmm/sse.c.in
@@ -22,7 +22,7 @@
   float*restrict c,
   size_t cm_stride,
   size_t cn_stride,
-  const union xnn_f32_output_params params[restrict static 1])
+  const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(mr != 0);
   assert(mr <= ${MR});
diff --git a/src/f32-spmm/gen/12x1-neonfma.c b/src/f32-spmm/gen/12x1-neonfma.c
index 13f2954..2d81030 100644
--- a/src/f32-spmm/gen/12x1-neonfma.c
+++ b/src/f32-spmm/gen/12x1-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/12x2-neonfma.c b/src/f32-spmm/gen/12x2-neonfma.c
index f2a1c12..4841e29 100644
--- a/src/f32-spmm/gen/12x2-neonfma.c
+++ b/src/f32-spmm/gen/12x2-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/12x4-neonfma.c b/src/f32-spmm/gen/12x4-neonfma.c
index f89f1ea..98abf31 100644
--- a/src/f32-spmm/gen/12x4-neonfma.c
+++ b/src/f32-spmm/gen/12x4-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/16x1-neonfma-pipelined.c b/src/f32-spmm/gen/16x1-neonfma-pipelined.c
index b4e20d2..2a93dad 100644
--- a/src/f32-spmm/gen/16x1-neonfma-pipelined.c
+++ b/src/f32-spmm/gen/16x1-neonfma-pipelined.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/16x1-neonfma-unroll2.c b/src/f32-spmm/gen/16x1-neonfma-unroll2.c
index dc00953..d3c813f 100644
--- a/src/f32-spmm/gen/16x1-neonfma-unroll2.c
+++ b/src/f32-spmm/gen/16x1-neonfma-unroll2.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/16x1-neonfma.c b/src/f32-spmm/gen/16x1-neonfma.c
index 1e89ff3..2da2f74 100644
--- a/src/f32-spmm/gen/16x1-neonfma.c
+++ b/src/f32-spmm/gen/16x1-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/16x2-neonfma.c b/src/f32-spmm/gen/16x2-neonfma.c
index 364a62f..79f99ef 100644
--- a/src/f32-spmm/gen/16x2-neonfma.c
+++ b/src/f32-spmm/gen/16x2-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/16x4-neonfma.c b/src/f32-spmm/gen/16x4-neonfma.c
index cae8683..ef26bd1 100644
--- a/src/f32-spmm/gen/16x4-neonfma.c
+++ b/src/f32-spmm/gen/16x4-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/1x1-scalar-pipelined.c b/src/f32-spmm/gen/1x1-scalar-pipelined.c
index a0e3843..598bdca 100644
--- a/src/f32-spmm/gen/1x1-scalar-pipelined.c
+++ b/src/f32-spmm/gen/1x1-scalar-pipelined.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/1x1-scalar.c b/src/f32-spmm/gen/1x1-scalar.c
index 48029eb..4e559a6 100644
--- a/src/f32-spmm/gen/1x1-scalar.c
+++ b/src/f32-spmm/gen/1x1-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/2x1-scalar-pipelined.c b/src/f32-spmm/gen/2x1-scalar-pipelined.c
index fd185f3..51c97c2 100644
--- a/src/f32-spmm/gen/2x1-scalar-pipelined.c
+++ b/src/f32-spmm/gen/2x1-scalar-pipelined.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/2x1-scalar.c b/src/f32-spmm/gen/2x1-scalar.c
index 4e33933..caf00fe 100644
--- a/src/f32-spmm/gen/2x1-scalar.c
+++ b/src/f32-spmm/gen/2x1-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-neonfma-pipelined.c b/src/f32-spmm/gen/4x1-neonfma-pipelined.c
index c24b261..40b9c8e 100644
--- a/src/f32-spmm/gen/4x1-neonfma-pipelined.c
+++ b/src/f32-spmm/gen/4x1-neonfma-pipelined.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-neonfma-unroll2.c b/src/f32-spmm/gen/4x1-neonfma-unroll2.c
index 81bcd85..4ca90a5 100644
--- a/src/f32-spmm/gen/4x1-neonfma-unroll2.c
+++ b/src/f32-spmm/gen/4x1-neonfma-unroll2.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-neonfma.c b/src/f32-spmm/gen/4x1-neonfma.c
index 7e40a60..22083c5 100644
--- a/src/f32-spmm/gen/4x1-neonfma.c
+++ b/src/f32-spmm/gen/4x1-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-scalar-pipelined.c b/src/f32-spmm/gen/4x1-scalar-pipelined.c
index 4fff03b..dd52cf4 100644
--- a/src/f32-spmm/gen/4x1-scalar-pipelined.c
+++ b/src/f32-spmm/gen/4x1-scalar-pipelined.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-scalar.c b/src/f32-spmm/gen/4x1-scalar.c
index d45c518..2a33f45 100644
--- a/src/f32-spmm/gen/4x1-scalar.c
+++ b/src/f32-spmm/gen/4x1-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x1-sse.c b/src/f32-spmm/gen/4x1-sse.c
index 85eaa26..c60c333 100644
--- a/src/f32-spmm/gen/4x1-sse.c
+++ b/src/f32-spmm/gen/4x1-sse.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x2-neonfma.c b/src/f32-spmm/gen/4x2-neonfma.c
index 56809df..b57c0d5 100644
--- a/src/f32-spmm/gen/4x2-neonfma.c
+++ b/src/f32-spmm/gen/4x2-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/4x4-neonfma.c b/src/f32-spmm/gen/4x4-neonfma.c
index f506166..d842d76 100644
--- a/src/f32-spmm/gen/4x4-neonfma.c
+++ b/src/f32-spmm/gen/4x4-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-neonfma-pipelined.c b/src/f32-spmm/gen/8x1-neonfma-pipelined.c
index ece6ad7..bf93ee6 100644
--- a/src/f32-spmm/gen/8x1-neonfma-pipelined.c
+++ b/src/f32-spmm/gen/8x1-neonfma-pipelined.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-neonfma-unroll2.c b/src/f32-spmm/gen/8x1-neonfma-unroll2.c
index a68d586..1524ba6 100644
--- a/src/f32-spmm/gen/8x1-neonfma-unroll2.c
+++ b/src/f32-spmm/gen/8x1-neonfma-unroll2.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-neonfma.c b/src/f32-spmm/gen/8x1-neonfma.c
index d851769..eb78c38 100644
--- a/src/f32-spmm/gen/8x1-neonfma.c
+++ b/src/f32-spmm/gen/8x1-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-scalar-pipelined.c b/src/f32-spmm/gen/8x1-scalar-pipelined.c
index e84a32c..a59a1ab 100644
--- a/src/f32-spmm/gen/8x1-scalar-pipelined.c
+++ b/src/f32-spmm/gen/8x1-scalar-pipelined.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-scalar.c b/src/f32-spmm/gen/8x1-scalar.c
index 5574a7d..59e41d3 100644
--- a/src/f32-spmm/gen/8x1-scalar.c
+++ b/src/f32-spmm/gen/8x1-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x1-sse.c b/src/f32-spmm/gen/8x1-sse.c
index a411b94..5b5a3a3 100644
--- a/src/f32-spmm/gen/8x1-sse.c
+++ b/src/f32-spmm/gen/8x1-sse.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x2-neonfma.c b/src/f32-spmm/gen/8x2-neonfma.c
index 07fcc6a..067f0c2 100644
--- a/src/f32-spmm/gen/8x2-neonfma.c
+++ b/src/f32-spmm/gen/8x2-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x2-scalar.c b/src/f32-spmm/gen/8x2-scalar.c
index b82fddf..2b2c10b 100644
--- a/src/f32-spmm/gen/8x2-scalar.c
+++ b/src/f32-spmm/gen/8x2-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x4-neonfma.c b/src/f32-spmm/gen/8x4-neonfma.c
index c1fc602..1ca65e7 100644
--- a/src/f32-spmm/gen/8x4-neonfma.c
+++ b/src/f32-spmm/gen/8x4-neonfma.c
@@ -22,7 +22,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/gen/8x4-scalar.c b/src/f32-spmm/gen/8x4-scalar.c
index 6a44d74..c776ad4 100644
--- a/src/f32-spmm/gen/8x4-scalar.c
+++ b/src/f32-spmm/gen/8x4-scalar.c
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/neon-blocked.c.in b/src/f32-spmm/neon-blocked.c.in
index ce2c49d..3c91ce9 100644
--- a/src/f32-spmm/neon-blocked.c.in
+++ b/src/f32-spmm/neon-blocked.c.in
@@ -21,7 +21,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/neon-pipelined.c.in b/src/f32-spmm/neon-pipelined.c.in
index 3c0b836..9ab48f0 100644
--- a/src/f32-spmm/neon-pipelined.c.in
+++ b/src/f32-spmm/neon-pipelined.c.in
@@ -20,7 +20,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/neon.c.in b/src/f32-spmm/neon.c.in
index cf3c9a4..49f04ec 100644
--- a/src/f32-spmm/neon.c.in
+++ b/src/f32-spmm/neon.c.in
@@ -20,7 +20,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/scalar-pipelined.c.in b/src/f32-spmm/scalar-pipelined.c.in
index 49c05f2..6bc5c76 100644
--- a/src/f32-spmm/scalar-pipelined.c.in
+++ b/src/f32-spmm/scalar-pipelined.c.in
@@ -18,7 +18,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/scalar.c.in b/src/f32-spmm/scalar.c.in
index d3bd762..02ba4c4 100644
--- a/src/f32-spmm/scalar.c.in
+++ b/src/f32-spmm/scalar.c.in
@@ -18,7 +18,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-spmm/sse.c.in b/src/f32-spmm/sse.c.in
index 2581faf..9088872 100644
--- a/src/f32-spmm/sse.c.in
+++ b/src/f32-spmm/sse.c.in
@@ -20,7 +20,7 @@
     const int32_t*restrict widx_dmap,
     const uint32_t*restrict nidx_nnzmap,
     float*restrict c,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(m != 0);
 
diff --git a/src/f32-vbinary/gen/vadd-avx-x16.c b/src/f32-vbinary/gen/vadd-avx-x16.c
index 7ccd3fa..230e99f 100644
--- a/src/f32-vbinary/gen/vadd-avx-x16.c
+++ b/src/f32-vbinary/gen/vadd-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-avx-x8.c b/src/f32-vbinary/gen/vadd-avx-x8.c
index 38208f5..d89d07b 100644
--- a/src/f32-vbinary/gen/vadd-avx-x8.c
+++ b/src/f32-vbinary/gen/vadd-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-avx512f-x16.c b/src/f32-vbinary/gen/vadd-avx512f-x16.c
index d61d5e2..f4de3f0 100644
--- a/src/f32-vbinary/gen/vadd-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vadd-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-avx512f-x32.c b/src/f32-vbinary/gen/vadd-avx512f-x32.c
index b3a4b05..3e80c7f 100644
--- a/src/f32-vbinary/gen/vadd-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vadd-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-neon-x4.c b/src/f32-vbinary/gen/vadd-neon-x4.c
index 9cde405..259e053 100644
--- a/src/f32-vbinary/gen/vadd-neon-x4.c
+++ b/src/f32-vbinary/gen/vadd-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-neon-x8.c b/src/f32-vbinary/gen/vadd-neon-x8.c
index ec8dff6..1093b15 100644
--- a/src/f32-vbinary/gen/vadd-neon-x8.c
+++ b/src/f32-vbinary/gen/vadd-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-psimd-x4.c b/src/f32-vbinary/gen/vadd-psimd-x4.c
index 64f902c..6fbfbf8 100644
--- a/src/f32-vbinary/gen/vadd-psimd-x4.c
+++ b/src/f32-vbinary/gen/vadd-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-psimd-x8.c b/src/f32-vbinary/gen/vadd-psimd-x8.c
index 2b064aa..9f70c26 100644
--- a/src/f32-vbinary/gen/vadd-psimd-x8.c
+++ b/src/f32-vbinary/gen/vadd-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-scalar-x1.c b/src/f32-vbinary/gen/vadd-scalar-x1.c
index 6cbfb32..4cab157 100644
--- a/src/f32-vbinary/gen/vadd-scalar-x1.c
+++ b/src/f32-vbinary/gen/vadd-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-scalar-x2.c b/src/f32-vbinary/gen/vadd-scalar-x2.c
index a493be4..507e923 100644
--- a/src/f32-vbinary/gen/vadd-scalar-x2.c
+++ b/src/f32-vbinary/gen/vadd-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-scalar-x4.c b/src/f32-vbinary/gen/vadd-scalar-x4.c
index 6375517..6931e95 100644
--- a/src/f32-vbinary/gen/vadd-scalar-x4.c
+++ b/src/f32-vbinary/gen/vadd-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-sse-x4.c b/src/f32-vbinary/gen/vadd-sse-x4.c
index a90490d..a41028e 100644
--- a/src/f32-vbinary/gen/vadd-sse-x4.c
+++ b/src/f32-vbinary/gen/vadd-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-sse-x8.c b/src/f32-vbinary/gen/vadd-sse-x8.c
index d399297..8161ed0 100644
--- a/src/f32-vbinary/gen/vadd-sse-x8.c
+++ b/src/f32-vbinary/gen/vadd-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-wasm-x1.c b/src/f32-vbinary/gen/vadd-wasm-x1.c
index ee2811e..7bf784d 100644
--- a/src/f32-vbinary/gen/vadd-wasm-x1.c
+++ b/src/f32-vbinary/gen/vadd-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-wasm-x2.c b/src/f32-vbinary/gen/vadd-wasm-x2.c
index 86fb847..e4c7e7c 100644
--- a/src/f32-vbinary/gen/vadd-wasm-x2.c
+++ b/src/f32-vbinary/gen/vadd-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vadd-wasm-x4.c b/src/f32-vbinary/gen/vadd-wasm-x4.c
index 11da45e..be5652a 100644
--- a/src/f32-vbinary/gen/vadd-wasm-x4.c
+++ b/src/f32-vbinary/gen/vadd-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-avx-x16.c b/src/f32-vbinary/gen/vaddc-avx-x16.c
index a13848e..216a00c 100644
--- a/src/f32-vbinary/gen/vaddc-avx-x16.c
+++ b/src/f32-vbinary/gen/vaddc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-avx-x8.c b/src/f32-vbinary/gen/vaddc-avx-x8.c
index a0e539d..2f6f4ca 100644
--- a/src/f32-vbinary/gen/vaddc-avx-x8.c
+++ b/src/f32-vbinary/gen/vaddc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-avx512f-x16.c b/src/f32-vbinary/gen/vaddc-avx512f-x16.c
index 84f8e22..3397651 100644
--- a/src/f32-vbinary/gen/vaddc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vaddc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-avx512f-x32.c b/src/f32-vbinary/gen/vaddc-avx512f-x32.c
index 8371800..a0d767c 100644
--- a/src/f32-vbinary/gen/vaddc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vaddc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-neon-x4.c b/src/f32-vbinary/gen/vaddc-neon-x4.c
index f347572..894b6d2 100644
--- a/src/f32-vbinary/gen/vaddc-neon-x4.c
+++ b/src/f32-vbinary/gen/vaddc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-neon-x8.c b/src/f32-vbinary/gen/vaddc-neon-x8.c
index 9cd1363..145506a 100644
--- a/src/f32-vbinary/gen/vaddc-neon-x8.c
+++ b/src/f32-vbinary/gen/vaddc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-psimd-x4.c b/src/f32-vbinary/gen/vaddc-psimd-x4.c
index c29922e..a371b0e 100644
--- a/src/f32-vbinary/gen/vaddc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vaddc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-psimd-x8.c b/src/f32-vbinary/gen/vaddc-psimd-x8.c
index 4f3581e..c042a4c 100644
--- a/src/f32-vbinary/gen/vaddc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vaddc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-scalar-x1.c b/src/f32-vbinary/gen/vaddc-scalar-x1.c
index a17e7f3..85a35b2 100644
--- a/src/f32-vbinary/gen/vaddc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vaddc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-scalar-x2.c b/src/f32-vbinary/gen/vaddc-scalar-x2.c
index ca6efbb..dcb6de2 100644
--- a/src/f32-vbinary/gen/vaddc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vaddc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-scalar-x4.c b/src/f32-vbinary/gen/vaddc-scalar-x4.c
index 68834c9..915ee50 100644
--- a/src/f32-vbinary/gen/vaddc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vaddc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-sse-x4.c b/src/f32-vbinary/gen/vaddc-sse-x4.c
index 3899812..9408e81 100644
--- a/src/f32-vbinary/gen/vaddc-sse-x4.c
+++ b/src/f32-vbinary/gen/vaddc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-sse-x8.c b/src/f32-vbinary/gen/vaddc-sse-x8.c
index 86ffed1..5fb7072 100644
--- a/src/f32-vbinary/gen/vaddc-sse-x8.c
+++ b/src/f32-vbinary/gen/vaddc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-wasm-x1.c b/src/f32-vbinary/gen/vaddc-wasm-x1.c
index 141a621..354ec47 100644
--- a/src/f32-vbinary/gen/vaddc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vaddc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-wasm-x2.c b/src/f32-vbinary/gen/vaddc-wasm-x2.c
index bd4d0c6..6f150fe 100644
--- a/src/f32-vbinary/gen/vaddc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vaddc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vaddc-wasm-x4.c b/src/f32-vbinary/gen/vaddc-wasm-x4.c
index 4a99e20..d881fae 100644
--- a/src/f32-vbinary/gen/vaddc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vaddc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-avx-x16.c b/src/f32-vbinary/gen/vdiv-avx-x16.c
index 49d8e8d..b10a302 100644
--- a/src/f32-vbinary/gen/vdiv-avx-x16.c
+++ b/src/f32-vbinary/gen/vdiv-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-avx-x8.c b/src/f32-vbinary/gen/vdiv-avx-x8.c
index 3eb9fbc..8b868e1 100644
--- a/src/f32-vbinary/gen/vdiv-avx-x8.c
+++ b/src/f32-vbinary/gen/vdiv-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-avx512f-x16.c b/src/f32-vbinary/gen/vdiv-avx512f-x16.c
index 81ac32b..caf9c80 100644
--- a/src/f32-vbinary/gen/vdiv-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vdiv-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-avx512f-x32.c b/src/f32-vbinary/gen/vdiv-avx512f-x32.c
index b74884b..581e84c 100644
--- a/src/f32-vbinary/gen/vdiv-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vdiv-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-neon-x4.c b/src/f32-vbinary/gen/vdiv-neon-x4.c
index 7468780..ab69795 100644
--- a/src/f32-vbinary/gen/vdiv-neon-x4.c
+++ b/src/f32-vbinary/gen/vdiv-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-neon-x8.c b/src/f32-vbinary/gen/vdiv-neon-x8.c
index 28795b3..7704334 100644
--- a/src/f32-vbinary/gen/vdiv-neon-x8.c
+++ b/src/f32-vbinary/gen/vdiv-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-psimd-x4.c b/src/f32-vbinary/gen/vdiv-psimd-x4.c
index efb13c9..f57a433 100644
--- a/src/f32-vbinary/gen/vdiv-psimd-x4.c
+++ b/src/f32-vbinary/gen/vdiv-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-psimd-x8.c b/src/f32-vbinary/gen/vdiv-psimd-x8.c
index fe7ac9c..009285d 100644
--- a/src/f32-vbinary/gen/vdiv-psimd-x8.c
+++ b/src/f32-vbinary/gen/vdiv-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-scalar-x1.c b/src/f32-vbinary/gen/vdiv-scalar-x1.c
index df6f5f0..fdc2485 100644
--- a/src/f32-vbinary/gen/vdiv-scalar-x1.c
+++ b/src/f32-vbinary/gen/vdiv-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-scalar-x2.c b/src/f32-vbinary/gen/vdiv-scalar-x2.c
index 9de65a5..65dd914 100644
--- a/src/f32-vbinary/gen/vdiv-scalar-x2.c
+++ b/src/f32-vbinary/gen/vdiv-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-scalar-x4.c b/src/f32-vbinary/gen/vdiv-scalar-x4.c
index 9de54e7..aa0f3a9 100644
--- a/src/f32-vbinary/gen/vdiv-scalar-x4.c
+++ b/src/f32-vbinary/gen/vdiv-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-sse-x4.c b/src/f32-vbinary/gen/vdiv-sse-x4.c
index c751cd6..f7a2ad4 100644
--- a/src/f32-vbinary/gen/vdiv-sse-x4.c
+++ b/src/f32-vbinary/gen/vdiv-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-sse-x8.c b/src/f32-vbinary/gen/vdiv-sse-x8.c
index c71222d..99a8c34 100644
--- a/src/f32-vbinary/gen/vdiv-sse-x8.c
+++ b/src/f32-vbinary/gen/vdiv-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-wasm-x1.c b/src/f32-vbinary/gen/vdiv-wasm-x1.c
index 9b0dc84..a64b993 100644
--- a/src/f32-vbinary/gen/vdiv-wasm-x1.c
+++ b/src/f32-vbinary/gen/vdiv-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-wasm-x2.c b/src/f32-vbinary/gen/vdiv-wasm-x2.c
index 7848c8c..2f607e1 100644
--- a/src/f32-vbinary/gen/vdiv-wasm-x2.c
+++ b/src/f32-vbinary/gen/vdiv-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdiv-wasm-x4.c b/src/f32-vbinary/gen/vdiv-wasm-x4.c
index fd84922..8ca9cc8 100644
--- a/src/f32-vbinary/gen/vdiv-wasm-x4.c
+++ b/src/f32-vbinary/gen/vdiv-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-avx-x16.c b/src/f32-vbinary/gen/vdivc-avx-x16.c
index f0a75a8..a9ab3b6 100644
--- a/src/f32-vbinary/gen/vdivc-avx-x16.c
+++ b/src/f32-vbinary/gen/vdivc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-avx-x8.c b/src/f32-vbinary/gen/vdivc-avx-x8.c
index d59133d..5411c8e 100644
--- a/src/f32-vbinary/gen/vdivc-avx-x8.c
+++ b/src/f32-vbinary/gen/vdivc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-avx512f-x16.c b/src/f32-vbinary/gen/vdivc-avx512f-x16.c
index 0d8fa6d..2608a12 100644
--- a/src/f32-vbinary/gen/vdivc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vdivc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-avx512f-x32.c b/src/f32-vbinary/gen/vdivc-avx512f-x32.c
index 2e40dc2..96b457c 100644
--- a/src/f32-vbinary/gen/vdivc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vdivc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-neon-x4.c b/src/f32-vbinary/gen/vdivc-neon-x4.c
index 1d31508..133feed 100644
--- a/src/f32-vbinary/gen/vdivc-neon-x4.c
+++ b/src/f32-vbinary/gen/vdivc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-neon-x8.c b/src/f32-vbinary/gen/vdivc-neon-x8.c
index 80efe5c..226fe86 100644
--- a/src/f32-vbinary/gen/vdivc-neon-x8.c
+++ b/src/f32-vbinary/gen/vdivc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-psimd-x4.c b/src/f32-vbinary/gen/vdivc-psimd-x4.c
index 5444473..d6c1373 100644
--- a/src/f32-vbinary/gen/vdivc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vdivc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-psimd-x8.c b/src/f32-vbinary/gen/vdivc-psimd-x8.c
index f6f2f3a..ca80f01 100644
--- a/src/f32-vbinary/gen/vdivc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vdivc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-scalar-x1.c b/src/f32-vbinary/gen/vdivc-scalar-x1.c
index 15df5fa..576eba8 100644
--- a/src/f32-vbinary/gen/vdivc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vdivc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-scalar-x2.c b/src/f32-vbinary/gen/vdivc-scalar-x2.c
index 31582ad..7137e2f 100644
--- a/src/f32-vbinary/gen/vdivc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vdivc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-scalar-x4.c b/src/f32-vbinary/gen/vdivc-scalar-x4.c
index 972a240..e7cda2a 100644
--- a/src/f32-vbinary/gen/vdivc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vdivc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-sse-x4.c b/src/f32-vbinary/gen/vdivc-sse-x4.c
index ebd6ae9..cc27bcb 100644
--- a/src/f32-vbinary/gen/vdivc-sse-x4.c
+++ b/src/f32-vbinary/gen/vdivc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-sse-x8.c b/src/f32-vbinary/gen/vdivc-sse-x8.c
index ceb1a65..96387ce 100644
--- a/src/f32-vbinary/gen/vdivc-sse-x8.c
+++ b/src/f32-vbinary/gen/vdivc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-wasm-x1.c b/src/f32-vbinary/gen/vdivc-wasm-x1.c
index 64c2710..fba49f9 100644
--- a/src/f32-vbinary/gen/vdivc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vdivc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-wasm-x2.c b/src/f32-vbinary/gen/vdivc-wasm-x2.c
index d4fd1b6..614a0e9 100644
--- a/src/f32-vbinary/gen/vdivc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vdivc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vdivc-wasm-x4.c b/src/f32-vbinary/gen/vdivc-wasm-x4.c
index 47d7864..063ce25 100644
--- a/src/f32-vbinary/gen/vdivc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vdivc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-avx-x16.c b/src/f32-vbinary/gen/vmax-avx-x16.c
index e3c0b30..61a6e9c 100644
--- a/src/f32-vbinary/gen/vmax-avx-x16.c
+++ b/src/f32-vbinary/gen/vmax-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-avx-x8.c b/src/f32-vbinary/gen/vmax-avx-x8.c
index 937e1ad..79adac3 100644
--- a/src/f32-vbinary/gen/vmax-avx-x8.c
+++ b/src/f32-vbinary/gen/vmax-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-avx512f-x16.c b/src/f32-vbinary/gen/vmax-avx512f-x16.c
index 64116e2..96a565e 100644
--- a/src/f32-vbinary/gen/vmax-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vmax-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-avx512f-x32.c b/src/f32-vbinary/gen/vmax-avx512f-x32.c
index 73e7509..4dc8f88 100644
--- a/src/f32-vbinary/gen/vmax-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vmax-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-neon-x4.c b/src/f32-vbinary/gen/vmax-neon-x4.c
index 4ec449f..49a2fea 100644
--- a/src/f32-vbinary/gen/vmax-neon-x4.c
+++ b/src/f32-vbinary/gen/vmax-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-neon-x8.c b/src/f32-vbinary/gen/vmax-neon-x8.c
index 86e0d6e..55aac28 100644
--- a/src/f32-vbinary/gen/vmax-neon-x8.c
+++ b/src/f32-vbinary/gen/vmax-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-psimd-x4.c b/src/f32-vbinary/gen/vmax-psimd-x4.c
index eac604a..3fb08a0 100644
--- a/src/f32-vbinary/gen/vmax-psimd-x4.c
+++ b/src/f32-vbinary/gen/vmax-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-psimd-x8.c b/src/f32-vbinary/gen/vmax-psimd-x8.c
index 7910382..9d62229 100644
--- a/src/f32-vbinary/gen/vmax-psimd-x8.c
+++ b/src/f32-vbinary/gen/vmax-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-scalar-x1.c b/src/f32-vbinary/gen/vmax-scalar-x1.c
index ba28d18..e85854c 100644
--- a/src/f32-vbinary/gen/vmax-scalar-x1.c
+++ b/src/f32-vbinary/gen/vmax-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-scalar-x2.c b/src/f32-vbinary/gen/vmax-scalar-x2.c
index d9ab615..8d95310 100644
--- a/src/f32-vbinary/gen/vmax-scalar-x2.c
+++ b/src/f32-vbinary/gen/vmax-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-scalar-x4.c b/src/f32-vbinary/gen/vmax-scalar-x4.c
index ca5b9f7..df8a7a2 100644
--- a/src/f32-vbinary/gen/vmax-scalar-x4.c
+++ b/src/f32-vbinary/gen/vmax-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-sse-x4.c b/src/f32-vbinary/gen/vmax-sse-x4.c
index d05e3b9..aa37d68 100644
--- a/src/f32-vbinary/gen/vmax-sse-x4.c
+++ b/src/f32-vbinary/gen/vmax-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-sse-x8.c b/src/f32-vbinary/gen/vmax-sse-x8.c
index adc8478..ef4bde3 100644
--- a/src/f32-vbinary/gen/vmax-sse-x8.c
+++ b/src/f32-vbinary/gen/vmax-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-wasm-x1.c b/src/f32-vbinary/gen/vmax-wasm-x1.c
index ea77615..e0cc7ec 100644
--- a/src/f32-vbinary/gen/vmax-wasm-x1.c
+++ b/src/f32-vbinary/gen/vmax-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-wasm-x2.c b/src/f32-vbinary/gen/vmax-wasm-x2.c
index 5aa493d..85daf62 100644
--- a/src/f32-vbinary/gen/vmax-wasm-x2.c
+++ b/src/f32-vbinary/gen/vmax-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmax-wasm-x4.c b/src/f32-vbinary/gen/vmax-wasm-x4.c
index 37b2806..4735b42 100644
--- a/src/f32-vbinary/gen/vmax-wasm-x4.c
+++ b/src/f32-vbinary/gen/vmax-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-avx-x16.c b/src/f32-vbinary/gen/vmaxc-avx-x16.c
index 66433aa..3d7d7fb 100644
--- a/src/f32-vbinary/gen/vmaxc-avx-x16.c
+++ b/src/f32-vbinary/gen/vmaxc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-avx-x8.c b/src/f32-vbinary/gen/vmaxc-avx-x8.c
index 8312e7c..cc0ad5d 100644
--- a/src/f32-vbinary/gen/vmaxc-avx-x8.c
+++ b/src/f32-vbinary/gen/vmaxc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-avx512f-x16.c b/src/f32-vbinary/gen/vmaxc-avx512f-x16.c
index 737f989..065eb85 100644
--- a/src/f32-vbinary/gen/vmaxc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vmaxc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-avx512f-x32.c b/src/f32-vbinary/gen/vmaxc-avx512f-x32.c
index a2a2823..b753714 100644
--- a/src/f32-vbinary/gen/vmaxc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vmaxc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-neon-x4.c b/src/f32-vbinary/gen/vmaxc-neon-x4.c
index fe6fcfd..7907fdd 100644
--- a/src/f32-vbinary/gen/vmaxc-neon-x4.c
+++ b/src/f32-vbinary/gen/vmaxc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-neon-x8.c b/src/f32-vbinary/gen/vmaxc-neon-x8.c
index 074f8a8..c06875c 100644
--- a/src/f32-vbinary/gen/vmaxc-neon-x8.c
+++ b/src/f32-vbinary/gen/vmaxc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-psimd-x4.c b/src/f32-vbinary/gen/vmaxc-psimd-x4.c
index a972e1b..34abedf 100644
--- a/src/f32-vbinary/gen/vmaxc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vmaxc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-psimd-x8.c b/src/f32-vbinary/gen/vmaxc-psimd-x8.c
index 8751fcf..18a8f1c 100644
--- a/src/f32-vbinary/gen/vmaxc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vmaxc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-scalar-x1.c b/src/f32-vbinary/gen/vmaxc-scalar-x1.c
index c7e2011..cd01cce 100644
--- a/src/f32-vbinary/gen/vmaxc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vmaxc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-scalar-x2.c b/src/f32-vbinary/gen/vmaxc-scalar-x2.c
index d73f0e3..591f85a 100644
--- a/src/f32-vbinary/gen/vmaxc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vmaxc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-scalar-x4.c b/src/f32-vbinary/gen/vmaxc-scalar-x4.c
index c1df4d9..db3f2dd 100644
--- a/src/f32-vbinary/gen/vmaxc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vmaxc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-sse-x4.c b/src/f32-vbinary/gen/vmaxc-sse-x4.c
index 3fa98da..c082b71 100644
--- a/src/f32-vbinary/gen/vmaxc-sse-x4.c
+++ b/src/f32-vbinary/gen/vmaxc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-sse-x8.c b/src/f32-vbinary/gen/vmaxc-sse-x8.c
index e2d375e..10ed955 100644
--- a/src/f32-vbinary/gen/vmaxc-sse-x8.c
+++ b/src/f32-vbinary/gen/vmaxc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-wasm-x1.c b/src/f32-vbinary/gen/vmaxc-wasm-x1.c
index 087470a..92d2181 100644
--- a/src/f32-vbinary/gen/vmaxc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vmaxc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-wasm-x2.c b/src/f32-vbinary/gen/vmaxc-wasm-x2.c
index d1bee8f..e0d8a5e 100644
--- a/src/f32-vbinary/gen/vmaxc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vmaxc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmaxc-wasm-x4.c b/src/f32-vbinary/gen/vmaxc-wasm-x4.c
index f34ca60..fc4a6e9 100644
--- a/src/f32-vbinary/gen/vmaxc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vmaxc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-avx-x16.c b/src/f32-vbinary/gen/vmin-avx-x16.c
index 7104b38..38603c2 100644
--- a/src/f32-vbinary/gen/vmin-avx-x16.c
+++ b/src/f32-vbinary/gen/vmin-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-avx-x8.c b/src/f32-vbinary/gen/vmin-avx-x8.c
index b1fe1df..e0f52d0 100644
--- a/src/f32-vbinary/gen/vmin-avx-x8.c
+++ b/src/f32-vbinary/gen/vmin-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-avx512f-x16.c b/src/f32-vbinary/gen/vmin-avx512f-x16.c
index d399977..d01eed8 100644
--- a/src/f32-vbinary/gen/vmin-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vmin-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-avx512f-x32.c b/src/f32-vbinary/gen/vmin-avx512f-x32.c
index 8177907..6ca07c9 100644
--- a/src/f32-vbinary/gen/vmin-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vmin-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-neon-x4.c b/src/f32-vbinary/gen/vmin-neon-x4.c
index 60f4574..8f170a0 100644
--- a/src/f32-vbinary/gen/vmin-neon-x4.c
+++ b/src/f32-vbinary/gen/vmin-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-neon-x8.c b/src/f32-vbinary/gen/vmin-neon-x8.c
index dde1226..3dde9fe 100644
--- a/src/f32-vbinary/gen/vmin-neon-x8.c
+++ b/src/f32-vbinary/gen/vmin-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-psimd-x4.c b/src/f32-vbinary/gen/vmin-psimd-x4.c
index 556a2d5..d5a52d1 100644
--- a/src/f32-vbinary/gen/vmin-psimd-x4.c
+++ b/src/f32-vbinary/gen/vmin-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-psimd-x8.c b/src/f32-vbinary/gen/vmin-psimd-x8.c
index 0fa348d..451424e 100644
--- a/src/f32-vbinary/gen/vmin-psimd-x8.c
+++ b/src/f32-vbinary/gen/vmin-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-scalar-x1.c b/src/f32-vbinary/gen/vmin-scalar-x1.c
index d0d96aa..8c39b89 100644
--- a/src/f32-vbinary/gen/vmin-scalar-x1.c
+++ b/src/f32-vbinary/gen/vmin-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-scalar-x2.c b/src/f32-vbinary/gen/vmin-scalar-x2.c
index aedb292..fb789a2 100644
--- a/src/f32-vbinary/gen/vmin-scalar-x2.c
+++ b/src/f32-vbinary/gen/vmin-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-scalar-x4.c b/src/f32-vbinary/gen/vmin-scalar-x4.c
index d9a6795..ba4ee2c 100644
--- a/src/f32-vbinary/gen/vmin-scalar-x4.c
+++ b/src/f32-vbinary/gen/vmin-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-sse-x4.c b/src/f32-vbinary/gen/vmin-sse-x4.c
index cfd8ee2..758efdb 100644
--- a/src/f32-vbinary/gen/vmin-sse-x4.c
+++ b/src/f32-vbinary/gen/vmin-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-sse-x8.c b/src/f32-vbinary/gen/vmin-sse-x8.c
index 15c4044..285a039 100644
--- a/src/f32-vbinary/gen/vmin-sse-x8.c
+++ b/src/f32-vbinary/gen/vmin-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-wasm-x1.c b/src/f32-vbinary/gen/vmin-wasm-x1.c
index 891724d..3aa4b06 100644
--- a/src/f32-vbinary/gen/vmin-wasm-x1.c
+++ b/src/f32-vbinary/gen/vmin-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-wasm-x2.c b/src/f32-vbinary/gen/vmin-wasm-x2.c
index 6dc63c0..d86a21a 100644
--- a/src/f32-vbinary/gen/vmin-wasm-x2.c
+++ b/src/f32-vbinary/gen/vmin-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmin-wasm-x4.c b/src/f32-vbinary/gen/vmin-wasm-x4.c
index 7776444..004bd12 100644
--- a/src/f32-vbinary/gen/vmin-wasm-x4.c
+++ b/src/f32-vbinary/gen/vmin-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-avx-x16.c b/src/f32-vbinary/gen/vminc-avx-x16.c
index cb4af59..6b42b69 100644
--- a/src/f32-vbinary/gen/vminc-avx-x16.c
+++ b/src/f32-vbinary/gen/vminc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-avx-x8.c b/src/f32-vbinary/gen/vminc-avx-x8.c
index bfb2efd..edfee93 100644
--- a/src/f32-vbinary/gen/vminc-avx-x8.c
+++ b/src/f32-vbinary/gen/vminc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-avx512f-x16.c b/src/f32-vbinary/gen/vminc-avx512f-x16.c
index fe9bd00..9424f7b 100644
--- a/src/f32-vbinary/gen/vminc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vminc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-avx512f-x32.c b/src/f32-vbinary/gen/vminc-avx512f-x32.c
index 7be626c..de99bc8 100644
--- a/src/f32-vbinary/gen/vminc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vminc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-neon-x4.c b/src/f32-vbinary/gen/vminc-neon-x4.c
index 1ded945..855f067 100644
--- a/src/f32-vbinary/gen/vminc-neon-x4.c
+++ b/src/f32-vbinary/gen/vminc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-neon-x8.c b/src/f32-vbinary/gen/vminc-neon-x8.c
index 1ccd80a..92ac01f 100644
--- a/src/f32-vbinary/gen/vminc-neon-x8.c
+++ b/src/f32-vbinary/gen/vminc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-psimd-x4.c b/src/f32-vbinary/gen/vminc-psimd-x4.c
index 58f19c4..0553bd8 100644
--- a/src/f32-vbinary/gen/vminc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vminc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-psimd-x8.c b/src/f32-vbinary/gen/vminc-psimd-x8.c
index bbb9213..8746a7f 100644
--- a/src/f32-vbinary/gen/vminc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vminc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-scalar-x1.c b/src/f32-vbinary/gen/vminc-scalar-x1.c
index 9f41371..ccd33b6 100644
--- a/src/f32-vbinary/gen/vminc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vminc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-scalar-x2.c b/src/f32-vbinary/gen/vminc-scalar-x2.c
index 92b39c2..a0a6e08 100644
--- a/src/f32-vbinary/gen/vminc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vminc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-scalar-x4.c b/src/f32-vbinary/gen/vminc-scalar-x4.c
index 62d5e61..b16a77b 100644
--- a/src/f32-vbinary/gen/vminc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vminc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-sse-x4.c b/src/f32-vbinary/gen/vminc-sse-x4.c
index b0e3894..5f0d97c 100644
--- a/src/f32-vbinary/gen/vminc-sse-x4.c
+++ b/src/f32-vbinary/gen/vminc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-sse-x8.c b/src/f32-vbinary/gen/vminc-sse-x8.c
index 3f29689..9736006 100644
--- a/src/f32-vbinary/gen/vminc-sse-x8.c
+++ b/src/f32-vbinary/gen/vminc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-wasm-x1.c b/src/f32-vbinary/gen/vminc-wasm-x1.c
index ea0e966..3021406 100644
--- a/src/f32-vbinary/gen/vminc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vminc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-wasm-x2.c b/src/f32-vbinary/gen/vminc-wasm-x2.c
index 8745aba..f8a99b2 100644
--- a/src/f32-vbinary/gen/vminc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vminc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vminc-wasm-x4.c b/src/f32-vbinary/gen/vminc-wasm-x4.c
index 3e39f22..5237eef 100644
--- a/src/f32-vbinary/gen/vminc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vminc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-avx-x16.c b/src/f32-vbinary/gen/vmul-avx-x16.c
index 2d8b5a7..8f4eee0 100644
--- a/src/f32-vbinary/gen/vmul-avx-x16.c
+++ b/src/f32-vbinary/gen/vmul-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-avx-x8.c b/src/f32-vbinary/gen/vmul-avx-x8.c
index af3383a..14ffbe2 100644
--- a/src/f32-vbinary/gen/vmul-avx-x8.c
+++ b/src/f32-vbinary/gen/vmul-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-avx512f-x16.c b/src/f32-vbinary/gen/vmul-avx512f-x16.c
index d649cec..6555357 100644
--- a/src/f32-vbinary/gen/vmul-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vmul-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-avx512f-x32.c b/src/f32-vbinary/gen/vmul-avx512f-x32.c
index e1d5bd9..729d9d8 100644
--- a/src/f32-vbinary/gen/vmul-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vmul-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-neon-x4.c b/src/f32-vbinary/gen/vmul-neon-x4.c
index f7e8b25..111d786 100644
--- a/src/f32-vbinary/gen/vmul-neon-x4.c
+++ b/src/f32-vbinary/gen/vmul-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-neon-x8.c b/src/f32-vbinary/gen/vmul-neon-x8.c
index f087f7e..eab3025 100644
--- a/src/f32-vbinary/gen/vmul-neon-x8.c
+++ b/src/f32-vbinary/gen/vmul-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-psimd-x4.c b/src/f32-vbinary/gen/vmul-psimd-x4.c
index 5b77409..ebfe03a 100644
--- a/src/f32-vbinary/gen/vmul-psimd-x4.c
+++ b/src/f32-vbinary/gen/vmul-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-psimd-x8.c b/src/f32-vbinary/gen/vmul-psimd-x8.c
index 07e8e1a..50e86cb 100644
--- a/src/f32-vbinary/gen/vmul-psimd-x8.c
+++ b/src/f32-vbinary/gen/vmul-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-scalar-x1.c b/src/f32-vbinary/gen/vmul-scalar-x1.c
index bd22c94..dd59b58 100644
--- a/src/f32-vbinary/gen/vmul-scalar-x1.c
+++ b/src/f32-vbinary/gen/vmul-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-scalar-x2.c b/src/f32-vbinary/gen/vmul-scalar-x2.c
index 7cce165..8c39c2f 100644
--- a/src/f32-vbinary/gen/vmul-scalar-x2.c
+++ b/src/f32-vbinary/gen/vmul-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-scalar-x4.c b/src/f32-vbinary/gen/vmul-scalar-x4.c
index 7bc69a4..5d849c1 100644
--- a/src/f32-vbinary/gen/vmul-scalar-x4.c
+++ b/src/f32-vbinary/gen/vmul-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-sse-x4.c b/src/f32-vbinary/gen/vmul-sse-x4.c
index 11d4dd5..6c5b186 100644
--- a/src/f32-vbinary/gen/vmul-sse-x4.c
+++ b/src/f32-vbinary/gen/vmul-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-sse-x8.c b/src/f32-vbinary/gen/vmul-sse-x8.c
index bf066fc..bb3930a 100644
--- a/src/f32-vbinary/gen/vmul-sse-x8.c
+++ b/src/f32-vbinary/gen/vmul-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-wasm-x1.c b/src/f32-vbinary/gen/vmul-wasm-x1.c
index f837a8a..beee3c8 100644
--- a/src/f32-vbinary/gen/vmul-wasm-x1.c
+++ b/src/f32-vbinary/gen/vmul-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-wasm-x2.c b/src/f32-vbinary/gen/vmul-wasm-x2.c
index 7b5b038..6212b2f 100644
--- a/src/f32-vbinary/gen/vmul-wasm-x2.c
+++ b/src/f32-vbinary/gen/vmul-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmul-wasm-x4.c b/src/f32-vbinary/gen/vmul-wasm-x4.c
index 518dcfc..7fba937 100644
--- a/src/f32-vbinary/gen/vmul-wasm-x4.c
+++ b/src/f32-vbinary/gen/vmul-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-avx-x16.c b/src/f32-vbinary/gen/vmulc-avx-x16.c
index beb4cfb..f0de274 100644
--- a/src/f32-vbinary/gen/vmulc-avx-x16.c
+++ b/src/f32-vbinary/gen/vmulc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-avx-x8.c b/src/f32-vbinary/gen/vmulc-avx-x8.c
index 933b593..63aa806 100644
--- a/src/f32-vbinary/gen/vmulc-avx-x8.c
+++ b/src/f32-vbinary/gen/vmulc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-avx512f-x16.c b/src/f32-vbinary/gen/vmulc-avx512f-x16.c
index 7ff5e68..b75cf0e 100644
--- a/src/f32-vbinary/gen/vmulc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vmulc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-avx512f-x32.c b/src/f32-vbinary/gen/vmulc-avx512f-x32.c
index 378457d..328e159 100644
--- a/src/f32-vbinary/gen/vmulc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vmulc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-neon-x4.c b/src/f32-vbinary/gen/vmulc-neon-x4.c
index a982917..f27dece 100644
--- a/src/f32-vbinary/gen/vmulc-neon-x4.c
+++ b/src/f32-vbinary/gen/vmulc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-neon-x8.c b/src/f32-vbinary/gen/vmulc-neon-x8.c
index 7f4dcfa..5759595 100644
--- a/src/f32-vbinary/gen/vmulc-neon-x8.c
+++ b/src/f32-vbinary/gen/vmulc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-psimd-x4.c b/src/f32-vbinary/gen/vmulc-psimd-x4.c
index 8b9402d..57062a4 100644
--- a/src/f32-vbinary/gen/vmulc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vmulc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-psimd-x8.c b/src/f32-vbinary/gen/vmulc-psimd-x8.c
index 869179f..4929700 100644
--- a/src/f32-vbinary/gen/vmulc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vmulc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-scalar-x1.c b/src/f32-vbinary/gen/vmulc-scalar-x1.c
index 4444799..94859c8 100644
--- a/src/f32-vbinary/gen/vmulc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vmulc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-scalar-x2.c b/src/f32-vbinary/gen/vmulc-scalar-x2.c
index 5648ca6..1fff64b 100644
--- a/src/f32-vbinary/gen/vmulc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vmulc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-scalar-x4.c b/src/f32-vbinary/gen/vmulc-scalar-x4.c
index 778317c..e52e472 100644
--- a/src/f32-vbinary/gen/vmulc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vmulc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-sse-x4.c b/src/f32-vbinary/gen/vmulc-sse-x4.c
index b967977..6bc225c 100644
--- a/src/f32-vbinary/gen/vmulc-sse-x4.c
+++ b/src/f32-vbinary/gen/vmulc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-sse-x8.c b/src/f32-vbinary/gen/vmulc-sse-x8.c
index 0690f32..40ba8d2 100644
--- a/src/f32-vbinary/gen/vmulc-sse-x8.c
+++ b/src/f32-vbinary/gen/vmulc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-wasm-x1.c b/src/f32-vbinary/gen/vmulc-wasm-x1.c
index dfbf606..cfe73b1 100644
--- a/src/f32-vbinary/gen/vmulc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vmulc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-wasm-x2.c b/src/f32-vbinary/gen/vmulc-wasm-x2.c
index ce8570d..5baab70 100644
--- a/src/f32-vbinary/gen/vmulc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vmulc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vmulc-wasm-x4.c b/src/f32-vbinary/gen/vmulc-wasm-x4.c
index 820838b..3c3fe0a 100644
--- a/src/f32-vbinary/gen/vmulc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vmulc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-avx-x16.c b/src/f32-vbinary/gen/vrdivc-avx-x16.c
index 73625b1..ac194b5 100644
--- a/src/f32-vbinary/gen/vrdivc-avx-x16.c
+++ b/src/f32-vbinary/gen/vrdivc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-avx-x8.c b/src/f32-vbinary/gen/vrdivc-avx-x8.c
index ac50a26..6259bce 100644
--- a/src/f32-vbinary/gen/vrdivc-avx-x8.c
+++ b/src/f32-vbinary/gen/vrdivc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-avx512f-x16.c b/src/f32-vbinary/gen/vrdivc-avx512f-x16.c
index dc429f7..353d011 100644
--- a/src/f32-vbinary/gen/vrdivc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vrdivc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-avx512f-x32.c b/src/f32-vbinary/gen/vrdivc-avx512f-x32.c
index 2271729..3d37404 100644
--- a/src/f32-vbinary/gen/vrdivc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vrdivc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-neon-x4.c b/src/f32-vbinary/gen/vrdivc-neon-x4.c
index 2eef139..529ab86 100644
--- a/src/f32-vbinary/gen/vrdivc-neon-x4.c
+++ b/src/f32-vbinary/gen/vrdivc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-neon-x8.c b/src/f32-vbinary/gen/vrdivc-neon-x8.c
index d4df4a1..2e5bccb 100644
--- a/src/f32-vbinary/gen/vrdivc-neon-x8.c
+++ b/src/f32-vbinary/gen/vrdivc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-psimd-x4.c b/src/f32-vbinary/gen/vrdivc-psimd-x4.c
index 986992d..cf5f1a2 100644
--- a/src/f32-vbinary/gen/vrdivc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vrdivc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-psimd-x8.c b/src/f32-vbinary/gen/vrdivc-psimd-x8.c
index 4dda22b..b5ec17a 100644
--- a/src/f32-vbinary/gen/vrdivc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vrdivc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-scalar-x1.c b/src/f32-vbinary/gen/vrdivc-scalar-x1.c
index e83a1f5..7ce55b5 100644
--- a/src/f32-vbinary/gen/vrdivc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vrdivc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-scalar-x2.c b/src/f32-vbinary/gen/vrdivc-scalar-x2.c
index 26c4ab7..c0bbb10 100644
--- a/src/f32-vbinary/gen/vrdivc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vrdivc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-scalar-x4.c b/src/f32-vbinary/gen/vrdivc-scalar-x4.c
index 30a0dcb..89dcfa8 100644
--- a/src/f32-vbinary/gen/vrdivc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vrdivc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-sse-x4.c b/src/f32-vbinary/gen/vrdivc-sse-x4.c
index 3d01da6..0a036ca 100644
--- a/src/f32-vbinary/gen/vrdivc-sse-x4.c
+++ b/src/f32-vbinary/gen/vrdivc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-sse-x8.c b/src/f32-vbinary/gen/vrdivc-sse-x8.c
index e6d438f..17f2688 100644
--- a/src/f32-vbinary/gen/vrdivc-sse-x8.c
+++ b/src/f32-vbinary/gen/vrdivc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-wasm-x1.c b/src/f32-vbinary/gen/vrdivc-wasm-x1.c
index 8229acd..f66479b 100644
--- a/src/f32-vbinary/gen/vrdivc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vrdivc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-wasm-x2.c b/src/f32-vbinary/gen/vrdivc-wasm-x2.c
index b1e8339..ec02f6d 100644
--- a/src/f32-vbinary/gen/vrdivc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vrdivc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrdivc-wasm-x4.c b/src/f32-vbinary/gen/vrdivc-wasm-x4.c
index f406a92..7318952 100644
--- a/src/f32-vbinary/gen/vrdivc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vrdivc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-avx-x16.c b/src/f32-vbinary/gen/vrsubc-avx-x16.c
index 8419188..a057d71 100644
--- a/src/f32-vbinary/gen/vrsubc-avx-x16.c
+++ b/src/f32-vbinary/gen/vrsubc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-avx-x8.c b/src/f32-vbinary/gen/vrsubc-avx-x8.c
index ab49141..4fdc243 100644
--- a/src/f32-vbinary/gen/vrsubc-avx-x8.c
+++ b/src/f32-vbinary/gen/vrsubc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-avx512f-x16.c b/src/f32-vbinary/gen/vrsubc-avx512f-x16.c
index 7da9f49..2098cb0 100644
--- a/src/f32-vbinary/gen/vrsubc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vrsubc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-avx512f-x32.c b/src/f32-vbinary/gen/vrsubc-avx512f-x32.c
index 9e8d291..7f57f2c 100644
--- a/src/f32-vbinary/gen/vrsubc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vrsubc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-neon-x4.c b/src/f32-vbinary/gen/vrsubc-neon-x4.c
index 2524963..6864d32 100644
--- a/src/f32-vbinary/gen/vrsubc-neon-x4.c
+++ b/src/f32-vbinary/gen/vrsubc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-neon-x8.c b/src/f32-vbinary/gen/vrsubc-neon-x8.c
index 5578ecf..6f37f74 100644
--- a/src/f32-vbinary/gen/vrsubc-neon-x8.c
+++ b/src/f32-vbinary/gen/vrsubc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-psimd-x4.c b/src/f32-vbinary/gen/vrsubc-psimd-x4.c
index 7d3855b..a2c660b 100644
--- a/src/f32-vbinary/gen/vrsubc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vrsubc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-psimd-x8.c b/src/f32-vbinary/gen/vrsubc-psimd-x8.c
index d53752f..aeb68e6 100644
--- a/src/f32-vbinary/gen/vrsubc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vrsubc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-scalar-x1.c b/src/f32-vbinary/gen/vrsubc-scalar-x1.c
index a05c549..fab1e7c 100644
--- a/src/f32-vbinary/gen/vrsubc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vrsubc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-scalar-x2.c b/src/f32-vbinary/gen/vrsubc-scalar-x2.c
index 90d90ad..f82099e 100644
--- a/src/f32-vbinary/gen/vrsubc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vrsubc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-scalar-x4.c b/src/f32-vbinary/gen/vrsubc-scalar-x4.c
index f256861..3a0c5a9 100644
--- a/src/f32-vbinary/gen/vrsubc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vrsubc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-sse-x4.c b/src/f32-vbinary/gen/vrsubc-sse-x4.c
index d26e0be..ad343ae 100644
--- a/src/f32-vbinary/gen/vrsubc-sse-x4.c
+++ b/src/f32-vbinary/gen/vrsubc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-sse-x8.c b/src/f32-vbinary/gen/vrsubc-sse-x8.c
index 961b4a4..75e9aca 100644
--- a/src/f32-vbinary/gen/vrsubc-sse-x8.c
+++ b/src/f32-vbinary/gen/vrsubc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-wasm-x1.c b/src/f32-vbinary/gen/vrsubc-wasm-x1.c
index fc6ba71..5849e4d 100644
--- a/src/f32-vbinary/gen/vrsubc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vrsubc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-wasm-x2.c b/src/f32-vbinary/gen/vrsubc-wasm-x2.c
index fec9c71..7f94c23 100644
--- a/src/f32-vbinary/gen/vrsubc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vrsubc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vrsubc-wasm-x4.c b/src/f32-vbinary/gen/vrsubc-wasm-x4.c
index 47aa49b..bec931c 100644
--- a/src/f32-vbinary/gen/vrsubc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vrsubc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-avx-x16.c b/src/f32-vbinary/gen/vsub-avx-x16.c
index 0fae902..9beabcd 100644
--- a/src/f32-vbinary/gen/vsub-avx-x16.c
+++ b/src/f32-vbinary/gen/vsub-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-avx-x8.c b/src/f32-vbinary/gen/vsub-avx-x8.c
index 6c7e3ce..bdaf5cb 100644
--- a/src/f32-vbinary/gen/vsub-avx-x8.c
+++ b/src/f32-vbinary/gen/vsub-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-avx512f-x16.c b/src/f32-vbinary/gen/vsub-avx512f-x16.c
index 13c1bd0..be9ba7b 100644
--- a/src/f32-vbinary/gen/vsub-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vsub-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-avx512f-x32.c b/src/f32-vbinary/gen/vsub-avx512f-x32.c
index 9131872..11879c2 100644
--- a/src/f32-vbinary/gen/vsub-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vsub-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-neon-x4.c b/src/f32-vbinary/gen/vsub-neon-x4.c
index 5963361..c96b4a0 100644
--- a/src/f32-vbinary/gen/vsub-neon-x4.c
+++ b/src/f32-vbinary/gen/vsub-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-neon-x8.c b/src/f32-vbinary/gen/vsub-neon-x8.c
index a730352..205bc84 100644
--- a/src/f32-vbinary/gen/vsub-neon-x8.c
+++ b/src/f32-vbinary/gen/vsub-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-psimd-x4.c b/src/f32-vbinary/gen/vsub-psimd-x4.c
index 52b6c08..35529f6 100644
--- a/src/f32-vbinary/gen/vsub-psimd-x4.c
+++ b/src/f32-vbinary/gen/vsub-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-psimd-x8.c b/src/f32-vbinary/gen/vsub-psimd-x8.c
index 7fb5039..0b50884 100644
--- a/src/f32-vbinary/gen/vsub-psimd-x8.c
+++ b/src/f32-vbinary/gen/vsub-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-scalar-x1.c b/src/f32-vbinary/gen/vsub-scalar-x1.c
index 21123a9..fcf9db7 100644
--- a/src/f32-vbinary/gen/vsub-scalar-x1.c
+++ b/src/f32-vbinary/gen/vsub-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-scalar-x2.c b/src/f32-vbinary/gen/vsub-scalar-x2.c
index ca85ab9..ff80f2c 100644
--- a/src/f32-vbinary/gen/vsub-scalar-x2.c
+++ b/src/f32-vbinary/gen/vsub-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-scalar-x4.c b/src/f32-vbinary/gen/vsub-scalar-x4.c
index a9707ef..af50403 100644
--- a/src/f32-vbinary/gen/vsub-scalar-x4.c
+++ b/src/f32-vbinary/gen/vsub-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-sse-x4.c b/src/f32-vbinary/gen/vsub-sse-x4.c
index 4b2eb68..5a1a904 100644
--- a/src/f32-vbinary/gen/vsub-sse-x4.c
+++ b/src/f32-vbinary/gen/vsub-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-sse-x8.c b/src/f32-vbinary/gen/vsub-sse-x8.c
index 8e2cb32..35efaa5 100644
--- a/src/f32-vbinary/gen/vsub-sse-x8.c
+++ b/src/f32-vbinary/gen/vsub-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-wasm-x1.c b/src/f32-vbinary/gen/vsub-wasm-x1.c
index afd215f..e8589d7 100644
--- a/src/f32-vbinary/gen/vsub-wasm-x1.c
+++ b/src/f32-vbinary/gen/vsub-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-wasm-x2.c b/src/f32-vbinary/gen/vsub-wasm-x2.c
index 7b5da3d..8c0a332 100644
--- a/src/f32-vbinary/gen/vsub-wasm-x2.c
+++ b/src/f32-vbinary/gen/vsub-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsub-wasm-x4.c b/src/f32-vbinary/gen/vsub-wasm-x4.c
index 64a4e14..522170d 100644
--- a/src/f32-vbinary/gen/vsub-wasm-x4.c
+++ b/src/f32-vbinary/gen/vsub-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-avx-x16.c b/src/f32-vbinary/gen/vsubc-avx-x16.c
index a74a554..4dc04b6 100644
--- a/src/f32-vbinary/gen/vsubc-avx-x16.c
+++ b/src/f32-vbinary/gen/vsubc-avx-x16.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-avx-x8.c b/src/f32-vbinary/gen/vsubc-avx-x8.c
index f939418..e9c3bbd 100644
--- a/src/f32-vbinary/gen/vsubc-avx-x8.c
+++ b/src/f32-vbinary/gen/vsubc-avx-x8.c
@@ -22,7 +22,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-avx512f-x16.c b/src/f32-vbinary/gen/vsubc-avx512f-x16.c
index c2a68a6..37d1a6f 100644
--- a/src/f32-vbinary/gen/vsubc-avx512f-x16.c
+++ b/src/f32-vbinary/gen/vsubc-avx512f-x16.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-avx512f-x32.c b/src/f32-vbinary/gen/vsubc-avx512f-x32.c
index 2d1e6c9..3fcb862 100644
--- a/src/f32-vbinary/gen/vsubc-avx512f-x32.c
+++ b/src/f32-vbinary/gen/vsubc-avx512f-x32.c
@@ -21,7 +21,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-neon-x4.c b/src/f32-vbinary/gen/vsubc-neon-x4.c
index 0e17536..531324d 100644
--- a/src/f32-vbinary/gen/vsubc-neon-x4.c
+++ b/src/f32-vbinary/gen/vsubc-neon-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-neon-x8.c b/src/f32-vbinary/gen/vsubc-neon-x8.c
index 45fcd04..9905f56 100644
--- a/src/f32-vbinary/gen/vsubc-neon-x8.c
+++ b/src/f32-vbinary/gen/vsubc-neon-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-psimd-x4.c b/src/f32-vbinary/gen/vsubc-psimd-x4.c
index 57f52d2..be5908e 100644
--- a/src/f32-vbinary/gen/vsubc-psimd-x4.c
+++ b/src/f32-vbinary/gen/vsubc-psimd-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-psimd-x8.c b/src/f32-vbinary/gen/vsubc-psimd-x8.c
index 3680ac7..1939191 100644
--- a/src/f32-vbinary/gen/vsubc-psimd-x8.c
+++ b/src/f32-vbinary/gen/vsubc-psimd-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-scalar-x1.c b/src/f32-vbinary/gen/vsubc-scalar-x1.c
index 2de0cf2..9da9158 100644
--- a/src/f32-vbinary/gen/vsubc-scalar-x1.c
+++ b/src/f32-vbinary/gen/vsubc-scalar-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-scalar-x2.c b/src/f32-vbinary/gen/vsubc-scalar-x2.c
index ef6138a..16d89cc 100644
--- a/src/f32-vbinary/gen/vsubc-scalar-x2.c
+++ b/src/f32-vbinary/gen/vsubc-scalar-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-scalar-x4.c b/src/f32-vbinary/gen/vsubc-scalar-x4.c
index c9a1164..4fd21d9 100644
--- a/src/f32-vbinary/gen/vsubc-scalar-x4.c
+++ b/src/f32-vbinary/gen/vsubc-scalar-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-sse-x4.c b/src/f32-vbinary/gen/vsubc-sse-x4.c
index a7f8cd4..62e6f0c 100644
--- a/src/f32-vbinary/gen/vsubc-sse-x4.c
+++ b/src/f32-vbinary/gen/vsubc-sse-x4.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-sse-x8.c b/src/f32-vbinary/gen/vsubc-sse-x8.c
index 3b65fc8..aef2d08 100644
--- a/src/f32-vbinary/gen/vsubc-sse-x8.c
+++ b/src/f32-vbinary/gen/vsubc-sse-x8.c
@@ -20,7 +20,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-wasm-x1.c b/src/f32-vbinary/gen/vsubc-wasm-x1.c
index 27ee045..ed9f69a 100644
--- a/src/f32-vbinary/gen/vsubc-wasm-x1.c
+++ b/src/f32-vbinary/gen/vsubc-wasm-x1.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-wasm-x2.c b/src/f32-vbinary/gen/vsubc-wasm-x2.c
index 9ffd026..3ccd056 100644
--- a/src/f32-vbinary/gen/vsubc-wasm-x2.c
+++ b/src/f32-vbinary/gen/vsubc-wasm-x2.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/gen/vsubc-wasm-x4.c b/src/f32-vbinary/gen/vsubc-wasm-x4.c
index 1a02d0a..1ef8d16 100644
--- a/src/f32-vbinary/gen/vsubc-wasm-x4.c
+++ b/src/f32-vbinary/gen/vsubc-wasm-x4.c
@@ -19,7 +19,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-avx.c.in b/src/f32-vbinary/vop-avx.c.in
index a48655d..cdd6f08 100644
--- a/src/f32-vbinary/vop-avx.c.in
+++ b/src/f32-vbinary/vop-avx.c.in
@@ -30,7 +30,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-avx512f.c.in b/src/f32-vbinary/vop-avx512f.c.in
index e1816b3..366bad5 100644
--- a/src/f32-vbinary/vop-avx512f.c.in
+++ b/src/f32-vbinary/vop-avx512f.c.in
@@ -29,7 +29,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-neon.c.in b/src/f32-vbinary/vop-neon.c.in
index b2f21ed..b0b1503 100644
--- a/src/f32-vbinary/vop-neon.c.in
+++ b/src/f32-vbinary/vop-neon.c.in
@@ -28,7 +28,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-psimd.c.in b/src/f32-vbinary/vop-psimd.c.in
index ec92f57..9a07777 100644
--- a/src/f32-vbinary/vop-psimd.c.in
+++ b/src/f32-vbinary/vop-psimd.c.in
@@ -28,7 +28,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-scalar.c.in b/src/f32-vbinary/vop-scalar.c.in
index a5d631a..351b354 100644
--- a/src/f32-vbinary/vop-scalar.c.in
+++ b/src/f32-vbinary/vop-scalar.c.in
@@ -28,7 +28,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vop-sse.c.in b/src/f32-vbinary/vop-sse.c.in
index 98d76c7..262bab7 100644
--- a/src/f32-vbinary/vop-sse.c.in
+++ b/src/f32-vbinary/vop-sse.c.in
@@ -28,7 +28,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-avx.c.in b/src/f32-vbinary/vopc-avx.c.in
index 16061e1..b7d0cfb 100644
--- a/src/f32-vbinary/vopc-avx.c.in
+++ b/src/f32-vbinary/vopc-avx.c.in
@@ -32,7 +32,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-avx512f.c.in b/src/f32-vbinary/vopc-avx512f.c.in
index 6b2b8f1..af154d9 100644
--- a/src/f32-vbinary/vopc-avx512f.c.in
+++ b/src/f32-vbinary/vopc-avx512f.c.in
@@ -31,7 +31,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-neon.c.in b/src/f32-vbinary/vopc-neon.c.in
index f90045c..b19728c 100644
--- a/src/f32-vbinary/vopc-neon.c.in
+++ b/src/f32-vbinary/vopc-neon.c.in
@@ -30,7 +30,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-psimd.c.in b/src/f32-vbinary/vopc-psimd.c.in
index 1b72ce7..e439394 100644
--- a/src/f32-vbinary/vopc-psimd.c.in
+++ b/src/f32-vbinary/vopc-psimd.c.in
@@ -30,7 +30,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-scalar.c.in b/src/f32-vbinary/vopc-scalar.c.in
index de3f432..94c7cec 100644
--- a/src/f32-vbinary/vopc-scalar.c.in
+++ b/src/f32-vbinary/vopc-scalar.c.in
@@ -30,7 +30,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vbinary/vopc-sse.c.in b/src/f32-vbinary/vopc-sse.c.in
index 86c6ff1..97bff8f 100644
--- a/src/f32-vbinary/vopc-sse.c.in
+++ b/src/f32-vbinary/vopc-sse.c.in
@@ -30,7 +30,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(n != 0);
   assert(n % sizeof(float) == 0);
diff --git a/src/f32-vmulcaddc/gen/c1-scalar-2x.c b/src/f32-vmulcaddc/gen/c1-scalar-2x.c
index 47a0b72..0a5e550 100644
--- a/src/f32-vmulcaddc/gen/c1-scalar-2x.c
+++ b/src/f32-vmulcaddc/gen/c1-scalar-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c1-wasm-2x.c b/src/f32-vmulcaddc/gen/c1-wasm-2x.c
index 16e131a..bd7ecec 100644
--- a/src/f32-vmulcaddc/gen/c1-wasm-2x.c
+++ b/src/f32-vmulcaddc/gen/c1-wasm-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c2-scalar-2x.c b/src/f32-vmulcaddc/gen/c2-scalar-2x.c
index c038ade..92302d0 100644
--- a/src/f32-vmulcaddc/gen/c2-scalar-2x.c
+++ b/src/f32-vmulcaddc/gen/c2-scalar-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c2-wasm-2x.c b/src/f32-vmulcaddc/gen/c2-wasm-2x.c
index b8eab2f..8949bd7 100644
--- a/src/f32-vmulcaddc/gen/c2-wasm-2x.c
+++ b/src/f32-vmulcaddc/gen/c2-wasm-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-neon-2x.c b/src/f32-vmulcaddc/gen/c4-neon-2x.c
index 74738c0..647de0c 100644
--- a/src/f32-vmulcaddc/gen/c4-neon-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-neon-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-neonfma-2x.c b/src/f32-vmulcaddc/gen/c4-neonfma-2x.c
index 62ca155..888e7ad 100644
--- a/src/f32-vmulcaddc/gen/c4-neonfma-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-neonfma-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-psimd-2x.c b/src/f32-vmulcaddc/gen/c4-psimd-2x.c
index eaf0bae..aedf7fc 100644
--- a/src/f32-vmulcaddc/gen/c4-psimd-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-psimd-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-scalar-2x.c b/src/f32-vmulcaddc/gen/c4-scalar-2x.c
index a041b26..cba7972 100644
--- a/src/f32-vmulcaddc/gen/c4-scalar-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-scalar-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-sse-2x.c b/src/f32-vmulcaddc/gen/c4-sse-2x.c
index 931f451..2a8dfd9 100644
--- a/src/f32-vmulcaddc/gen/c4-sse-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-sse-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c4-wasm-2x.c b/src/f32-vmulcaddc/gen/c4-wasm-2x.c
index 1b45e19..8af3825 100644
--- a/src/f32-vmulcaddc/gen/c4-wasm-2x.c
+++ b/src/f32-vmulcaddc/gen/c4-wasm-2x.c
@@ -21,7 +21,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c8-neon-2x.c b/src/f32-vmulcaddc/gen/c8-neon-2x.c
index 129a2fd..1cae1b4 100644
--- a/src/f32-vmulcaddc/gen/c8-neon-2x.c
+++ b/src/f32-vmulcaddc/gen/c8-neon-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c8-neonfma-2x.c b/src/f32-vmulcaddc/gen/c8-neonfma-2x.c
index 1f5798e..d0710dd 100644
--- a/src/f32-vmulcaddc/gen/c8-neonfma-2x.c
+++ b/src/f32-vmulcaddc/gen/c8-neonfma-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c8-psimd-2x.c b/src/f32-vmulcaddc/gen/c8-psimd-2x.c
index 8fe95f8..f23681a 100644
--- a/src/f32-vmulcaddc/gen/c8-psimd-2x.c
+++ b/src/f32-vmulcaddc/gen/c8-psimd-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/gen/c8-sse-2x.c b/src/f32-vmulcaddc/gen/c8-sse-2x.c
index 85f80a4..110ae4f 100644
--- a/src/f32-vmulcaddc/gen/c8-sse-2x.c
+++ b/src/f32-vmulcaddc/gen/c8-sse-2x.c
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/neon.c.in b/src/f32-vmulcaddc/neon.c.in
index 19163ab..cb07908 100644
--- a/src/f32-vmulcaddc/neon.c.in
+++ b/src/f32-vmulcaddc/neon.c.in
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/psimd.c.in b/src/f32-vmulcaddc/psimd.c.in
index 14190c7..4901d1e 100644
--- a/src/f32-vmulcaddc/psimd.c.in
+++ b/src/f32-vmulcaddc/psimd.c.in
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/scalar.c.in b/src/f32-vmulcaddc/scalar.c.in
index e22f8de..928b0b3 100644
--- a/src/f32-vmulcaddc/scalar.c.in
+++ b/src/f32-vmulcaddc/scalar.c.in
@@ -22,7 +22,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/f32-vmulcaddc/sse.c.in b/src/f32-vmulcaddc/sse.c.in
index f856b32..3734bdc 100644
--- a/src/f32-vmulcaddc/sse.c.in
+++ b/src/f32-vmulcaddc/sse.c.in
@@ -23,7 +23,7 @@
     const float*restrict weights,
     float*restrict output,
     size_t output_stride,
-    const union xnn_f32_output_params params[restrict static 1])
+    const union xnn_f32_minmax_params params[restrict static 1])
 {
   assert(rows != 0);
   assert(channels != 0);
diff --git a/src/fully-connected-nc.c b/src/fully-connected-nc.c
index 159e448..454cb83 100644
--- a/src/fully-connected-nc.c
+++ b/src/fully-connected-nc.c
@@ -304,7 +304,7 @@
   fully_connected_op->input_pixel_stride = input_stride;
   fully_connected_op->output_pixel_stride = output_stride;
 
-  fully_connected_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  fully_connected_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   fully_connected_op->type = xnn_operator_type_fully_connected_nc_f32;
 
@@ -450,6 +450,6 @@
     2 /* log2(sizeof(filter element)) = log2(sizeof(float)) */,
     sizeof(float) /* sizeof(bias element) */,
     2 /* log2(sizeof(output element)) = log2(sizeof(float)) */,
-    &fully_connected_op->f32_output_params,
+    &fully_connected_op->f32_minmax_params,
     pthreadpool_get_threads_count(threadpool));
 }
diff --git a/src/max-pooling-nhwc.c b/src/max-pooling-nhwc.c
index 7b7844f..952824e 100644
--- a/src/max-pooling-nhwc.c
+++ b/src/max-pooling-nhwc.c
@@ -167,7 +167,7 @@
   max_pooling_op->input_pixel_stride = input_pixel_stride;
   max_pooling_op->output_pixel_stride = output_pixel_stride;
 
-  max_pooling_op->u8_output_params = xnn_init_u8_output_params(output_min, output_max);
+  max_pooling_op->u8_minmax_params = xnn_init_u8_minmax_params(output_min, output_max);
 
   max_pooling_op->type = xnn_operator_type_max_pooling_nhwc_u8;
   max_pooling_op->ukernel.type = xnn_ukernel_type_max_pooling;
@@ -320,7 +320,7 @@
   max_pooling_op->input_pixel_stride = input_pixel_stride;
   max_pooling_op->output_pixel_stride = output_pixel_stride;
 
-  max_pooling_op->f32_output_params = xnn_init_f32_output_params(output_min, output_max);
+  max_pooling_op->f32_minmax_params = xnn_init_f32_minmax_params(output_min, output_max);
 
   max_pooling_op->type = xnn_operator_type_max_pooling_nhwc_f32;
   max_pooling_op->ukernel.type = xnn_ukernel_type_max_pooling;
@@ -487,7 +487,7 @@
     0 /* log2(sizeof(input element)) = log2(sizeof(uint8_t)) */,
     0 /* log2(sizeof(output element)) = log2(sizeof(uint8_t)) */,
     &xnn_params.u8.maxpool,
-    &max_pooling_op->u8_output_params,
+    &max_pooling_op->u8_minmax_params,
     pthreadpool_get_threads_count(threadpool));
 }
 
@@ -512,7 +512,7 @@
     2 /* log2(sizeof(input element)) = log2(sizeof(float)) */,
     2 /* log2(sizeof(output element)) = log2(sizeof(float)) */,
     &xnn_params.f32.maxpool,
-    &max_pooling_op->f32_output_params,
+    &max_pooling_op->f32_minmax_params,
     pthreadpool_get_threads_count(threadpool));
 }
 
diff --git a/src/softmax-nc.c b/src/softmax-nc.c
index d459d3d..6351ae8 100644
--- a/src/softmax-nc.c
+++ b/src/softmax-nc.c
@@ -275,7 +275,7 @@
     .rmax_ukernel = xnn_params.f32.rmax,
     .raddstoreexpminusmax_ukernel = xnn_params.f32.raddstoreexpminusmax,
     .vmulc_ukernel = xnn_params.f32.vmul.opc_ukernel,
-    .params = xnn_init_f32_output_params(-INFINITY, INFINITY),
+    .params = xnn_init_f32_minmax_params(-INFINITY, INFINITY),
   };
   softmax_op->compute.type = xnn_parallelization_type_1d;
   softmax_op->compute.task_1d = (pthreadpool_task_1d_t) xnn_compute_f32_three_pass_softmax;
diff --git a/src/u8-clamp/neon-x64.c b/src/u8-clamp/neon-x64.c
index 2210d1e..e344ef6 100644
--- a/src/u8-clamp/neon-x64.c
+++ b/src/u8-clamp/neon-x64.c
@@ -17,7 +17,7 @@
     size_t n,
     const uint8_t* x,
     uint8_t* y,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(n != 0);
 
diff --git a/src/u8-clamp/scalar-x4.c b/src/u8-clamp/scalar-x4.c
index 47d6b86..24877dd 100644
--- a/src/u8-clamp/scalar-x4.c
+++ b/src/u8-clamp/scalar-x4.c
@@ -12,7 +12,7 @@
     size_t n,
     const uint8_t* x,
     uint8_t* y,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(n != 0);
 
diff --git a/src/u8-clamp/sse2-x64.c b/src/u8-clamp/sse2-x64.c
index 9ee225b..b370df4 100644
--- a/src/u8-clamp/sse2-x64.c
+++ b/src/u8-clamp/sse2-x64.c
@@ -17,7 +17,7 @@
     size_t n,
     const uint8_t* x,
     uint8_t* y,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(n != 0);
 
diff --git a/src/u8-maxpool/9p8x-neon-c16.c b/src/u8-maxpool/9p8x-neon-c16.c
index 8edba53..76c0420 100644
--- a/src/u8-maxpool/9p8x-neon-c16.c
+++ b/src/u8-maxpool/9p8x-neon-c16.c
@@ -22,7 +22,7 @@
     uint8_t* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/u8-maxpool/9p8x-scalar-c1.c b/src/u8-maxpool/9p8x-scalar-c1.c
index 10112a8..2d8be47 100644
--- a/src/u8-maxpool/9p8x-scalar-c1.c
+++ b/src/u8-maxpool/9p8x-scalar-c1.c
@@ -17,7 +17,7 @@
     uint8_t* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/u8-maxpool/9p8x-sse2-c16.c b/src/u8-maxpool/9p8x-sse2-c16.c
index 7d3ee15..6c4a985 100644
--- a/src/u8-maxpool/9p8x-sse2-c16.c
+++ b/src/u8-maxpool/9p8x-sse2-c16.c
@@ -22,7 +22,7 @@
     uint8_t* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_u8_output_params params[restrict static 1])
+    const union xnn_u8_minmax_params params[restrict static 1])
 {
   assert(output_pixels != 0);
   assert(kernel_elements != 0);
diff --git a/src/xnnpack/argmaxpool.h b/src/xnnpack/argmaxpool.h
index 056114c..cfe05a7 100644
--- a/src/xnnpack/argmaxpool.h
+++ b/src/xnnpack/argmaxpool.h
@@ -27,7 +27,7 @@
       uint32_t* index,                                           \
       size_t input_increment,                                    \
       size_t output_increment,                                   \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__psimd_c4)
 DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__sse2_c4)
@@ -51,7 +51,7 @@
       uint32_t* index,                                             \
       size_t input_increment,                                      \
       size_t output_increment,                                     \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__psimd_c4)
 DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__sse2_c4)
diff --git a/src/xnnpack/clamp.h b/src/xnnpack/clamp.h
index b47fc4b..39296b2 100644
--- a/src/xnnpack/clamp.h
+++ b/src/xnnpack/clamp.h
@@ -24,7 +24,7 @@
       size_t n,                                       \
       const float* x,                                 \
       float* y,                                       \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_CLAMP_UKERNEL_FUNCTION(xnn_f32_clamp_ukernel__neon_x4)
 DECLARE_F32_CLAMP_UKERNEL_FUNCTION(xnn_f32_clamp_ukernel__neon_x8)
@@ -49,7 +49,7 @@
       size_t n,                                    \
       const uint8_t* x,                            \
       uint8_t* y,                                  \
-      const union xnn_u8_output_params* params);
+      const union xnn_u8_minmax_params* params);
 
 DECLARE_U8_CLAMP_UKERNEL_FUNCTION(xnn_u8_clamp_ukernel__neon_x64)
 DECLARE_U8_CLAMP_UKERNEL_FUNCTION(xnn_u8_clamp_ukernel__sse2_x64)
diff --git a/src/xnnpack/compute.h b/src/xnnpack/compute.h
index e6b4223..ad0747f 100644
--- a/src/xnnpack/compute.h
+++ b/src/xnnpack/compute.h
@@ -70,7 +70,7 @@
   struct xnn_hmp_gemm_ukernel ukernel;
   union {
     union xnn_q8_gemm_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -135,7 +135,7 @@
   xnn_spmm_ukernel_function ukernel;
   // Output activation parameters.
   union {
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -168,7 +168,7 @@
   struct xnn_hmp_igemm_ukernel ukernel;
   union {
     union xnn_q8_gemm_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -230,7 +230,7 @@
   struct xnn_hmp_gemm_ukernel ukernel;
   union {
     union xnn_q8_gemm_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -274,7 +274,7 @@
   struct xnn_hmp_igemm_ukernel ukernel;
   union {
     union xnn_q8_gemm_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -318,7 +318,7 @@
     xnn_conv_hwc2spchw_ukernel_function hwc2spchw_ukernel;
   };
   union {
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -342,7 +342,7 @@
   size_t output_col_increment;
   union {
     union xnn_q8_gemm_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
   union {
     xnn_dwconv_up_ukernel_function unipass_ukernel;
@@ -399,8 +399,8 @@
   size_t input_increment;
   size_t output_increment;
   union {
-    union xnn_u8_output_params u8;
-    union xnn_f32_output_params f32;
+    union xnn_u8_minmax_params u8;
+    union xnn_f32_minmax_params f32;
   } params;
   xnn_maxpool_ukernel_function ukernel;
 };
@@ -452,7 +452,7 @@
   size_t input_increment;
   size_t output_increment;
   union {
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
   union {
     xnn_argmaxpool_up_ukernel_function unipass_ukernel;
@@ -525,8 +525,8 @@
   size_t input_increment;
   size_t output_increment;
   union {
-    union xnn_u8_output_params u8;
-    union xnn_f32_output_params f32;
+    union xnn_u8_minmax_params u8;
+    union xnn_f32_minmax_params f32;
   } params;
   union {
     xnn_pavgpool_up_ukernel_function unipass_ukernel;
@@ -638,7 +638,7 @@
   size_t y_stride;
   union {
     union xnn_q8_add_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
   xnn_vadd_ukernel_function ukernel;
 };
@@ -656,7 +656,7 @@
   void* y;
   union {
     union xnn_q8_add_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
   xnn_vadd_ukernel_function ukernel;
 };
@@ -678,7 +678,7 @@
   size_t elements;
   union {
     union xnn_q8_add_params q8;
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
   xnn_vbinary_ukernel_function ukernel;
 };
@@ -752,8 +752,8 @@
   size_t y_stride;
   xnn_univector_ukernel_function ukernel;
   union {
-    union xnn_u8_output_params u8_output;
-    union xnn_f32_output_params f32_output;
+    union xnn_u8_minmax_params u8_output;
+    union xnn_f32_minmax_params f32_output;
     union xnn_f32_hswish_params f32_hswish;
   } params;
 };
@@ -772,8 +772,8 @@
   size_t y_stride;
   xnn_univector_ukernel_function ukernel;
   union {
-    union xnn_u8_output_params u8_output;
-    union xnn_f32_output_params f32_output;
+    union xnn_u8_minmax_params u8_output;
+    union xnn_f32_minmax_params f32_output;
     union xnn_f32_hswish_params f32_hswish;
   } params;
 };
@@ -811,7 +811,7 @@
   size_t y_stride;
   xnn_vmulcaddc_ukernel_function ukernel;
   union {
-    union xnn_f32_output_params f32;
+    union xnn_f32_minmax_params f32;
   } params;
 };
 
@@ -867,7 +867,7 @@
   xnn_f32_rmax_ukernel_function rmax_ukernel;
   xnn_f32_raddstoreexpminusmax_ukernel_function raddstoreexpminusmax_ukernel;
   xnn_vbinary_ukernel_function vmulc_ukernel;
-  union xnn_f32_output_params params;
+  union xnn_f32_minmax_params params;
 };
 
 #ifndef __cplusplus
diff --git a/src/xnnpack/conv.h b/src/xnnpack/conv.h
index d07838c..9d0c0cb 100644
--- a/src/xnnpack/conv.h
+++ b/src/xnnpack/conv.h
@@ -33,7 +33,7 @@
       size_t output_channels,                          \
       size_t output_height_stride,                     \
       size_t output_width_stride,                      \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neonfma_2x2)
 DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neonfma_2x2)
@@ -55,7 +55,7 @@
       size_t output_channels,                                \
       size_t output_height_stride,                           \
       size_t output_channel_stride,                          \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_CONV_HWC2SPCHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2spchw_ukernel_3x3s2p1c3x4__neonfma_2x2)
 DECLARE_F32_CONV_HWC2SPCHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2spchw_ukernel_3x3s2p1c3x4__scalar_1x1)
diff --git a/src/xnnpack/dwconv.h b/src/xnnpack/dwconv.h
index 6c77827..668e038 100644
--- a/src/xnnpack/dwconv.h
+++ b/src/xnnpack/dwconv.h
@@ -27,7 +27,7 @@
     float* output,                                           \
     size_t input_stride,                                     \
     size_t output_increment,                                 \
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_DWCONV_UNIPASS_UKERNEL_FUNCTION(xnn_f32_dwconv_ukernel_up4x4__psimd)
 DECLARE_F32_DWCONV_UNIPASS_UKERNEL_FUNCTION(xnn_f32_dwconv_ukernel_up4x4__psimd_acc2)
diff --git a/src/xnnpack/gemm.h b/src/xnnpack/gemm.h
index ca8383a..ba48019 100644
--- a/src/xnnpack/gemm.h
+++ b/src/xnnpack/gemm.h
@@ -30,7 +30,7 @@
       float* c,                                    \
       size_t cm_stride,                            \
       size_t cn_stride,                            \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_GEMM_UKERNEL_FUNCTION(xnn_f32_gemm_ukernel_4x2__neon_lane_ld64)
 DECLARE_F32_GEMM_UKERNEL_FUNCTION(xnn_f32_gemm_ukernel_1x8__neon_lane_ld64)
@@ -178,7 +178,7 @@
       size_t cm_stride,                               \
       size_t cn_stride,                               \
       const float* acc,                               \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_GEMMINC_UKERNEL_FUNCTION(xnn_f32_gemminc_ukernel_1x8__neon_lane_ld64)
 DECLARE_F32_GEMMINC_UKERNEL_FUNCTION(xnn_f32_gemminc_ukernel_4x8__neon_lane_ld64)
diff --git a/src/xnnpack/igemm.h b/src/xnnpack/igemm.h
index 154544b..6089605 100644
--- a/src/xnnpack/igemm.h
+++ b/src/xnnpack/igemm.h
@@ -32,7 +32,7 @@
       size_t cn_stride,                             \
       size_t a_offset,                              \
       const float* zero,                            \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_IGEMM_UKERNEL_FUNCTION(xnn_f32_igemm_ukernel_4x2__neon_lane_ld64)
 DECLARE_F32_IGEMM_UKERNEL_FUNCTION(xnn_f32_igemm_ukernel_4x4__neon_lane_ld64)
diff --git a/src/xnnpack/maxpool.h b/src/xnnpack/maxpool.h
index 34a52ec..db3d32d 100644
--- a/src/xnnpack/maxpool.h
+++ b/src/xnnpack/maxpool.h
@@ -29,7 +29,7 @@
       float* output,                                  \
       size_t input_increment,                         \
       size_t output_increment,                        \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_MAXPOOL_UKERNEL_FUNCTION(xnn_f32_maxpool_ukernel_9p8x__sse_c4)
 DECLARE_F32_MAXPOOL_UKERNEL_FUNCTION(xnn_f32_maxpool_ukernel_9p8x__neon_c4)
@@ -48,7 +48,7 @@
       uint8_t* output,                               \
       size_t input_increment,                        \
       size_t output_increment,                       \
-      const union xnn_u8_output_params* params);
+      const union xnn_u8_minmax_params* params);
 
 DECLARE_U8_MAXPOOL_UKERNEL_FUNCTION(xnn_u8_maxpool_ukernel_9p8x__neon_c16)
 DECLARE_U8_MAXPOOL_UKERNEL_FUNCTION(xnn_u8_maxpool_ukernel_9p8x__sse2_c16)
diff --git a/src/xnnpack/operator.h b/src/xnnpack/operator.h
index 6ecf25c..15f8efd 100644
--- a/src/xnnpack/operator.h
+++ b/src/xnnpack/operator.h
@@ -243,11 +243,11 @@
     // Parameters for Global Average Pooling in CHW layout
     union xnn_f32_gavgpool_params f32_gavgpool_params;
     union xnn_f32_hswish_params f32_hswish_params;
-    // Pixelwise Average Pooling normally use f32_output_params, but also initialize f32_avgpool_params in case it needs
+    // Pixelwise Average Pooling normally use f32_minmax_params, but also initialize f32_avgpool_params in case it needs
     // to switch to Global Average Pooling operation.
     struct {
       union xnn_f32_avgpool_params f32_avgpool_params;
-      union xnn_f32_output_params f32_output_params;
+      union xnn_f32_minmax_params f32_minmax_params;
     };
     union xnn_f32_spchw_params f32_spchw_params;
     union xnn_q8_add_params q8_add_params;
@@ -258,7 +258,7 @@
       union xnn_q8_avgpool_params q8_avgpool_params;
       union xnn_q8_avgpool_params q8_gavgpool_params;
     };
-    union xnn_u8_output_params u8_output_params;
+    union xnn_u8_minmax_params u8_minmax_params;
   };
   enum xnn_operator_type type;
   struct xnn_ukernel ukernel;
diff --git a/src/xnnpack/params-init.h b/src/xnnpack/params-init.h
index 8a9b88f..e4086c5 100644
--- a/src/xnnpack/params-init.h
+++ b/src/xnnpack/params-init.h
@@ -371,11 +371,11 @@
   return params;
 }
 
-static inline union xnn_f32_output_params xnn_init_f32_output_params(
+static inline union xnn_f32_minmax_params xnn_init_f32_minmax_params(
   float output_min,
   float output_max)
 {
-  union xnn_f32_output_params params;
+  union xnn_f32_minmax_params params;
   #if XNN_ARCH_X86 || XNN_ARCH_X86_64
     for (uint32_t i = 0; i < 4; i++) {
       params.sse.min[i] = output_min;
@@ -388,11 +388,11 @@
   return params;
 }
 
-static inline union xnn_f32_output_params xnn_init_scalar_f32_output_params(
+static inline union xnn_f32_minmax_params xnn_init_scalar_f32_minmax_params(
   float output_min,
   float output_max)
 {
-  union xnn_f32_output_params params;
+  union xnn_f32_minmax_params params;
   params.scalar.min = output_min;
   params.scalar.max = output_max;
   return params;
@@ -527,13 +527,13 @@
   return params;
 }
 
-static inline union xnn_u8_output_params xnn_init_u8_output_params(
+static inline union xnn_u8_minmax_params xnn_init_u8_minmax_params(
   uint8_t output_min,
   uint8_t output_max)
 {
   assert(output_min < output_max);
 
-  union xnn_u8_output_params params;
+  union xnn_u8_minmax_params params;
   #if XNN_ARCH_X86 || XNN_ARCH_X86_64
     for (uint32_t i = 0; i < 16; i++) {
       params.sse2.min[i] = output_min;
@@ -549,13 +549,13 @@
   return params;
 }
 
-static inline union xnn_u8_output_params xnn_init_scalar_u8_output_params(
+static inline union xnn_u8_minmax_params xnn_init_scalar_u8_minmax_params(
   uint8_t output_min,
   uint8_t output_max)
 {
   assert(output_min < output_max);
 
-  union xnn_u8_output_params params;
+  union xnn_u8_minmax_params params;
   params.scalar.min = (int32_t) (uint32_t) output_min;
   params.scalar.max = (int32_t) (uint32_t) output_max;
   return params;
diff --git a/src/xnnpack/params.h b/src/xnnpack/params.h
index f3b5b7c..609b8a8 100644
--- a/src/xnnpack/params.h
+++ b/src/xnnpack/params.h
@@ -21,7 +21,7 @@
   uint16_t max;
 };
 
-union xnn_f32_output_params {
+union xnn_f32_minmax_params {
   struct {
     float min;
     float max;
@@ -59,7 +59,7 @@
 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
 };
 
-union xnn_u8_output_params {
+union xnn_u8_minmax_params {
   struct {
     int32_t min;
     int32_t max;
@@ -376,7 +376,7 @@
     float* c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_f16_ppmm_ukernel_function)(
     size_t mr,
@@ -411,7 +411,7 @@
     float* c,
     size_t cm_stride,
     size_t cn_stride,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_f32_gemminc_ukernel_function)(
     size_t mr,
@@ -424,7 +424,7 @@
     size_t cm_stride,
     size_t cn_stride,
     const float* acc,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_f16_gemm_ukernel_function)(
     size_t mr,
@@ -476,7 +476,7 @@
     size_t cn_stride,
     size_t a_offset,
     const float* zero,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_q8_igemm_ukernel_function)(
     size_t mr,
@@ -520,7 +520,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_width_stride,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_conv_hwc2spchw_ukernel_function)(
     size_t input_height,
@@ -550,7 +550,7 @@
     size_t output_channels,
     size_t output_height_stride,
     size_t output_channel_stride,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_spmm_ukernel_function)(
     uint32_t m,
@@ -580,7 +580,7 @@
     const int32_t* dmap,
     const uint32_t* nmap,
     float* c,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_packx_ukernel_function)(
     size_t m,
@@ -704,7 +704,7 @@
     float* output,
     size_t input_stride,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_q8_dwconv_up_ukernel_function)(
     size_t channels,
@@ -915,7 +915,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_pavgpool_mp_ukernel_function)(
     size_t output_pixels,
@@ -943,7 +943,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_maxpool_ukernel_function)(
     size_t output_pixels,
@@ -965,7 +965,7 @@
     float* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_u8_maxpool_ukernel_function)(
     size_t output_pixels,
@@ -976,7 +976,7 @@
     uint8_t* output,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_u8_output_params* params);
+    const union xnn_u8_minmax_params* params);
 
 typedef void (*xnn_argmaxpool_up_ukernel_function)(
     size_t output_pixels,
@@ -1000,7 +1000,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_argmaxpool_mp_ukernel_function)(
     size_t output_pixels,
@@ -1028,7 +1028,7 @@
     uint32_t* index,
     size_t input_increment,
     size_t output_increment,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_univector_ukernel_function)(
     size_t n,
@@ -1040,13 +1040,13 @@
     size_t n,
     const float* x,
     float* y,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_u8_clamp_ukernel_function)(
     size_t n,
     const uint8_t* x,
     uint8_t* y,
-    const union xnn_u8_output_params* params);
+    const union xnn_u8_minmax_params* params);
 
 typedef void (*xnn_f32_hswish_ukernel_function)(
     size_t n,
@@ -1087,7 +1087,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_q8_vadd_ukernel_function)(
     size_t n,
@@ -1108,7 +1108,7 @@
     const float* a,
     const float* b,
     float* y,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_vunary_ukernel_function)(
     size_t n,
@@ -1140,7 +1140,7 @@
     const float* w,
     float* y,
     size_t y_stride,
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 typedef void (*xnn_prelu_ukernel_function)(
     size_t mr,
diff --git a/src/xnnpack/pavgpool.h b/src/xnnpack/pavgpool.h
index dd4e9b2..992a450 100644
--- a/src/xnnpack/pavgpool.h
+++ b/src/xnnpack/pavgpool.h
@@ -29,7 +29,7 @@
       float* output,                                             \
       size_t input_increment,                                    \
       size_t output_increment,                                   \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_PAVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_ukernel_9p8x__neon_c4)
 DECLARE_F32_PAVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_ukernel_9p8x__sse_c4)
@@ -50,7 +50,7 @@
       float* output,                                           \
       size_t input_increment,                                  \
       size_t output_increment,                                 \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_PAVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_ukernel_9x__neon_c4)
 DECLARE_F32_PAVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_ukernel_9x__sse_c4)
diff --git a/src/xnnpack/ppmm.h b/src/xnnpack/ppmm.h
index 3239736..60bedcc 100644
--- a/src/xnnpack/ppmm.h
+++ b/src/xnnpack/ppmm.h
@@ -26,7 +26,7 @@
       float* c,                                    \
       size_t cm_stride,                            \
       size_t cn_stride,                            \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_PPMM_UKERNEL_FUNCTION(xnn_f32_ppmm_ukernel_2x4__scalar)
 DECLARE_F32_PPMM_UKERNEL_FUNCTION(xnn_f32_ppmm_ukernel_3x3__scalar)
diff --git a/src/xnnpack/spmm.h b/src/xnnpack/spmm.h
index f49bc4a..4c7f3f2 100644
--- a/src/xnnpack/spmm.h
+++ b/src/xnnpack/spmm.h
@@ -25,7 +25,7 @@
     const int32_t* dmap,                           \
     const uint32_t* nmap,                          \
     float* c,                                      \
-    const union xnn_f32_output_params* params);
+    const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_SPMM_UKERNEL_FUNCTION(xnn_f32_spmm_ukernel_12x1__neonfma)
 DECLARE_F32_SPMM_UKERNEL_FUNCTION(xnn_f32_spmm_ukernel_12x2__neonfma)
diff --git a/src/xnnpack/vbinary.h b/src/xnnpack/vbinary.h
index 605f6b7..3fd2de5 100644
--- a/src/xnnpack/vbinary.h
+++ b/src/xnnpack/vbinary.h
@@ -25,7 +25,7 @@
       const float* a,                                \
       const float* b,                                \
       float* y,                                      \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_VBINOP_UKERNEL_FUNCTION(xnn_f32_vadd_ukernel__neon_x4)
 DECLARE_F32_VBINOP_UKERNEL_FUNCTION(xnn_f32_vadd_ukernel__neon_x8)
diff --git a/src/xnnpack/vmulcaddc.h b/src/xnnpack/vmulcaddc.h
index 4e817e4..59d8403 100644
--- a/src/xnnpack/vmulcaddc.h
+++ b/src/xnnpack/vmulcaddc.h
@@ -25,7 +25,7 @@
       const float* w,                                   \
       float* y,                                         \
       size_t y_stride,                                  \
-      const union xnn_f32_output_params* params);
+      const union xnn_f32_minmax_params* params);
 
 DECLARE_F32_VMULCADDC_UKERNEL_FUNCTION(xnn_f32_vmulcaddc_ukernel_c4__neon_2x)
 DECLARE_F32_VMULCADDC_UKERNEL_FUNCTION(xnn_f32_vmulcaddc_ukernel_c8__neon_2x)