diff --git a/src/subgraph/convolution-2d.c b/src/subgraph/convolution-2d.c index 2c65e9d08b6..6c84eebe25c 100644 --- a/src/subgraph/convolution-2d.c +++ b/src/subgraph/convolution-2d.c @@ -1300,21 +1300,13 @@ enum xnn_status xnn_define_convolution_2d( } } - const enum xnn_datatype input_datatype = input_value->datatype; - const enum xnn_datatype output_datatype = output_value->datatype; - if (input_datatype == xnn_datatype_fp32 - || input_datatype == xnn_datatype_fp16 - || input_datatype == xnn_datatype_qint8) { - if (input_value->datatype == output_datatype) { - const bool unit_subsampling = (subsampling_width | subsampling_height) == 1; - const size_t kernel_size = kernel_height * kernel_width; - if (groups == 1 && kernel_size == 1 && unit_subsampling && !any_padding) { - // Check if the convolution can take the vmulcaddc path. - if (group_input_channels + group_output_channels > 2) { - return xnn_define_fully_connected(subgraph, output_min, output_max, - input_id, filter_id, bias_id, output_id, /*flags=*/0); - } - } + const bool unit_subsampling = (subsampling_width | subsampling_height) == 1; + const size_t kernel_size = kernel_height * kernel_width; + if (groups == 1 && kernel_size == 1 && unit_subsampling && !any_padding) { + // Check if the convolution can take the vmulcaddc path. + if (group_input_channels + group_output_channels > 2) { + return xnn_define_fully_connected(subgraph, output_min, output_max, + input_id, filter_id, bias_id, output_id, /*flags=*/0); } } struct xnn_node* node = xnn_subgraph_new_node(subgraph);