message: [kernel_gen] Bitcast the type when inputs are forward to output.
  This showed up with the Real(complex) operation. The input would be forwarded, but then the declared result type and actual result type were different (a floating point number was declared, while the implementation returned a complex numbers).
diff: @@ -101,7 +101,11 @@ class MlirUnrankedOp : public OpKernel {
  for (int i = 0, end = ctx->num_inputs(); i < end; ++i) {
  const Tensor& input = ctx->input(i);
  if (input.data() == result_data_ptr) {
  - ctx->set_output(0, input);
  + // Run a bitcast in case the output type is different.
  + Tensor output;
  + OP_REQUIRES_OK(ctx,
  + output.BitcastFrom(input, TfDataType, input.shape()));
  + ctx->set_output(0, output);
  free(result_desc.descriptor);
  return;
  }
  