message: Convert FullyConnected/uint8->int16 to cpu_backend_gemm.
diff: @@ -1299,33 +1299,31 @@ inline void FullyConnected(
  }
  }
  #endif
  - gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::RowMajor> weights_matrix(
  - filter_data, output_depth, accum_depth);
  - gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::ColMajor> input_matrix(
  - input_data, accum_depth, batches);
  - gemmlowp::MatrixMap<int16, gemmlowp::MapOrder::ColMajor> output_matrix(
  - output_data, output_depth, batches);
  - typedef gemmlowp::VectorMap<const int32, gemmlowp::VectorShape::Col>
  - ColVectorMap;
  - ColVectorMap bias_vector(bias_data_int32, output_depth);
  - gemmlowp::OutputStageBiasAddition<ColVectorMap> bias_addition_stage;
  - bias_addition_stage.bias_vector = bias_vector;
  - gemmlowp::OutputStageScaleInt32ByFixedPointAndExponent scale_stage;
  - scale_stage.result_offset_after_shift = 0;
  - scale_stage.result_fixedpoint_multiplier = output_multiplier;
  - // Note that this shift is negated wrt ordinary FC.
  - scale_stage.result_exponent = output_shift;
  - gemmlowp::OutputStageClamp clamp_stage;
  - clamp_stage.min = output_activation_min;
  - clamp_stage.max = output_activation_max;
  - gemmlowp::OutputStageSaturatingCastToInt16 saturating_cast_int16_stage;
  - auto output_pipeline =
  - std::make_tuple(bias_addition_stage, scale_stage, clamp_stage,
  - saturating_cast_int16_stage);
  - gemmlowp::GemmWithOutputPipeline<uint8, int16,
  - gemmlowp::L8R8WithLhsNonzeroBitDepthParams>(
  - cpu_backend_context->gemmlowp_context(), weights_matrix, input_matrix,
  - &output_matrix, filter_offset, input_offset, output_pipeline);
  +
  + cpu_backend_gemm::MatrixParams<uint8> lhs_params;
  + lhs_params.rows = output_depth;
  + lhs_params.cols = accum_depth;
  + lhs_params.order = cpu_backend_gemm::Order::kRowMajor;
  + lhs_params.zero_point = -filter_offset;
  + cpu_backend_gemm::MatrixParams<uint8> rhs_params;
  + rhs_params.rows = accum_depth;
  + rhs_params.cols = batches;
  + rhs_params.order = cpu_backend_gemm::Order::kColMajor;
  + rhs_params.zero_point = -input_offset;
  + cpu_backend_gemm::MatrixParams<int16> dst_params;
  + dst_params.rows = output_depth;
  + dst_params.cols = batches;
  + dst_params.order = cpu_backend_gemm::Order::kColMajor;
  + dst_params.zero_point = 0;
  + cpu_backend_gemm::GemmParams<int32, int16> gemm_params;
  + gemm_params.bias = bias_data_int32;
  + gemm_params.clamp_min = output_activation_min;
  + gemm_params.clamp_max = output_activation_max;
  + gemm_params.multiplier_fixedpoint = output_multiplier;
  + gemm_params.multiplier_exponent = output_shift;
  + cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
  + dst_params, output_data, gemm_params,
  + cpu_backend_context);
  }
  // Internal function doing the actual arithmetic work for
  