message: Move AutoMixedPrecision ahead of GenericLayoutOptimizer
  The layout optimizer sets the data layout based on the dtype of the op.
  The mixed precision optimizer needs to proceed the layout optizer
  because it will change dtypes from float32 to float16.
diff: @@ -191,6 +191,10 @@ Status MetaOptimizer::InitializeOptimizers(
  if (cfg_.shape_optimization() != RewriterConfig::OFF) {
  optimizers->push_back(MakeUnique<ShapeOptimizer>());
  }
  + if (AutoMixedPrecisionEnabled(cfg_.auto_mixed_precision())) {
  + optimizers->push_back(
  + MakeUnique<AutoMixedPrecision>(cfg_.auto_mixed_precision()));
  + }
  if (cfg_.layout_optimizer() != RewriterConfig::OFF) {
  optimizers->push_back(MakeUnique<GenericLayoutOptimizer>());
  }
  @@ -212,10 +216,6 @@ Status MetaOptimizer::InitializeOptimizers(
  optimizers->push_back(
  MakeUnique<DependencyOptimizer>(cfg_.dependency_optimization()));
  }
  - if (AutoMixedPrecisionEnabled(cfg_.auto_mixed_precision())) {
  - optimizers->push_back(
  - MakeUnique<AutoMixedPrecision>(cfg_.auto_mixed_precision()));
  - }
  if (cfg_.memory_optimization() != RewriterConfig::NO_MEM_OPT) {
  if (cfg_.memory_optimizer_target_node_name_scope().empty()) {
  optimizers->push_back(
  