message: Only check int8->int8 and int16->int16 output scale/zero-point in Softmax preparation
diff: @@ -580,32 +580,14 @@ TfLiteStatus SoftmaxPrepare(TfLiteContext* context, TfLiteNode* node) {
  TF_LITE_ENSURE(context, NumDimensions(input) >= 1);
  - if (input->type == kTfLiteUInt8 || input->type == kTfLiteInt8 ||
  - input->type == kTfLiteInt16) {
  - if (input->type == kTfLiteInt16) {
  - TF_LITE_ENSURE_TYPES_EQ(context, output->type, kTfLiteInt16);
  - TF_LITE_ENSURE_EQ(context, output->params.zero_point, 0);
  - TF_LITE_ENSURE_NEAR(context, output->params.scale, 1.f / 32768,
  - (0.001f * 1.f / 32768));
  - } else {
  - if (output->type == kTfLiteInt16) {
  - TF_LITE_ENSURE(
  - context, input->type == kTfLiteInt8 || input->type == kTfLiteUInt8);
  - TF_LITE_ENSURE_EQ(context, output->params.zero_point, -32768);
  - TF_LITE_ENSURE_NEAR(context, output->params.scale, 1.f / 65536,
  - (0.001f * 1.f / 65536));
  - } else if (output->type == kTfLiteInt8) {
  - TF_LITE_ENSURE_TYPES_EQ(context, input->type, kTfLiteInt8);
  + if (input->type == kTfLiteInt8 && output->type == kTfLiteInt8) {
  TF_LITE_ENSURE_EQ(context, output->params.zero_point, -128);
  TF_LITE_ENSURE_NEAR(context, output->params.scale, 1.f / 256,
  (0.001f * 1.f / 256));
  - } else if (output->type == kTfLiteUInt8) {
  - TF_LITE_ENSURE_TYPES_EQ(context, input->type, kTfLiteUInt8);
  + } else if (input->type == kTfLiteInt16 && output->type == kTfLiteInt16) {
  TF_LITE_ENSURE_EQ(context, output->params.zero_point, 0);
  - TF_LITE_ENSURE_NEAR(context, output->params.scale, 1.f / 256,
  - (0.001f * 1.f / 256));
  - }
  - }
  + TF_LITE_ENSURE_NEAR(context, output->params.scale, 1.f / 32768,
  + (0.001f * 1.f / 32768));
  }
  if (input->type == kTfLiteUInt8 || input->type == kTfLiteInt8) {
  