Add missing ops to OpResolvers (#2386)

The PythonOpsResolver and the utility TflmOpResolver are intended to support all built-in ops allow for models to be tested without code changes. This PR syncs those op resolvers with all available ops from the MicroMutableOpResolver, notably adding BatchMatMul and the Signal ops.

Additionaly, this PR sorts the list alphabetically for readability and adds an alias for the utility TflmOpResolver since it is used in both the benchmarking tool and the layer by layer debugging tool.

BUG=cleanup
diff --git a/python/tflite_micro/python_ops_resolver.cc b/python/tflite_micro/python_ops_resolver.cc
index ab67bd4..f5d6e63 100644
--- a/python/tflite_micro/python_ops_resolver.cc
+++ b/python/tflite_micro/python_ops_resolver.cc
@@ -28,6 +28,7 @@
   AddArgMin();
   AddAssignVariable();
   AddAveragePool2D();
+  AddBatchMatMul();
   AddBatchToSpaceNd();
   AddBroadcastArgs();
   AddBroadcastTo();
@@ -45,8 +46,9 @@
   AddDequantize();
   AddDetectionPostprocess();
   AddDiv();
-  AddEnergy();
   AddElu();
+  AddEmbeddingLookup();
+  AddEnergy();
   AddEqual();
   AddEthosU();
   AddExp();
@@ -55,8 +57,8 @@
   AddFill();
   AddFilterBank();
   AddFilterBankLog();
-  AddFilterBankSquareRoot();
   AddFilterBankSpectralSubtraction();
+  AddFilterBankSquareRoot();
   AddFloor();
   AddFloorDiv();
   AddFloorMod();
@@ -75,11 +77,11 @@
   AddLess();
   AddLessEqual();
   AddLog();
+  AddLogSoftmax();
   AddLogicalAnd();
   AddLogicalNot();
   AddLogicalOr();
   AddLogistic();
-  AddLogSoftmax();
   AddMaxPool2D();
   AddMaximum();
   AddMean();
@@ -89,10 +91,10 @@
   AddNeg();
   AddNotEqual();
   AddOverlapAdd();
+  AddPCAN();
   AddPack();
   AddPad();
   AddPadV2();
-  AddPCAN();
   AddPrelu();
   AddQuantize();
   AddReadVariable();
@@ -118,8 +120,8 @@
   AddSquare();
   AddSquaredDifference();
   AddSqueeze();
-  AddStridedSlice();
   AddStacker();
+  AddStridedSlice();
   AddSub();
   AddSum();
   AddSvdf();
diff --git a/tensorflow/lite/micro/tools/benchmarking/generic_model_benchmark.cc b/tensorflow/lite/micro/tools/benchmarking/generic_model_benchmark.cc
index 1493e87..5f6e4c3 100644
--- a/tensorflow/lite/micro/tools/benchmarking/generic_model_benchmark.cc
+++ b/tensorflow/lite/micro/tools/benchmarking/generic_model_benchmark.cc
@@ -45,8 +45,6 @@
 
 using Profiler = ::tflite::MicroProfiler;
 
-using TflmOpResolver = tflite::MicroMutableOpResolver<96>;
-
 constexpr int kTfLiteAbort = -9;
 
 // Seed used for the random input. Input data shouldn't affect invocation timing
diff --git a/tensorflow/lite/micro/tools/benchmarking/op_resolver.h b/tensorflow/lite/micro/tools/benchmarking/op_resolver.h
index 447741b..9b98849 100644
--- a/tensorflow/lite/micro/tools/benchmarking/op_resolver.h
+++ b/tensorflow/lite/micro/tools/benchmarking/op_resolver.h
@@ -23,15 +23,17 @@
 
 namespace tflite {
 
-inline TfLiteStatus CreateOpResolver(
-    tflite::MicroMutableOpResolver<96>& op_resolver) {
-  TF_LITE_ENSURE_STATUS(op_resolver.AddFullyConnected());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddAdd());
+using TflmOpResolver = MicroMutableOpResolver<113>;
+
+inline TfLiteStatus CreateOpResolver(TflmOpResolver& op_resolver) {
   TF_LITE_ENSURE_STATUS(op_resolver.AddAbs());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddAdd());
   TF_LITE_ENSURE_STATUS(op_resolver.AddAddN());
   TF_LITE_ENSURE_STATUS(op_resolver.AddArgMax());
   TF_LITE_ENSURE_STATUS(op_resolver.AddArgMin());
   TF_LITE_ENSURE_STATUS(op_resolver.AddAssignVariable());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddAveragePool2D());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddBatchMatMul());
   TF_LITE_ENSURE_STATUS(op_resolver.AddBatchToSpaceNd());
   TF_LITE_ENSURE_STATUS(op_resolver.AddBroadcastArgs());
   TF_LITE_ENSURE_STATUS(op_resolver.AddBroadcastTo());
@@ -40,44 +42,63 @@
   TF_LITE_ENSURE_STATUS(op_resolver.AddCeil());
   TF_LITE_ENSURE_STATUS(op_resolver.AddCircularBuffer());
   TF_LITE_ENSURE_STATUS(op_resolver.AddConcatenation());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddConv2D());
   TF_LITE_ENSURE_STATUS(op_resolver.AddCos());
   TF_LITE_ENSURE_STATUS(op_resolver.AddCumSum());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddDelay());
   TF_LITE_ENSURE_STATUS(op_resolver.AddDepthToSpace());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddDepthwiseConv2D());
   TF_LITE_ENSURE_STATUS(op_resolver.AddDequantize());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddDetectionPostprocess());
   TF_LITE_ENSURE_STATUS(op_resolver.AddDiv());
   TF_LITE_ENSURE_STATUS(op_resolver.AddElu());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddEmbeddingLookup());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddEnergy());
   TF_LITE_ENSURE_STATUS(op_resolver.AddEqual());
   TF_LITE_ENSURE_STATUS(op_resolver.AddEthosU());
   TF_LITE_ENSURE_STATUS(op_resolver.AddExp());
   TF_LITE_ENSURE_STATUS(op_resolver.AddExpandDims());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFftAutoScale());
   TF_LITE_ENSURE_STATUS(op_resolver.AddFill());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBank());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankLog());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankSpectralSubtraction());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankSquareRoot());
   TF_LITE_ENSURE_STATUS(op_resolver.AddFloor());
   TF_LITE_ENSURE_STATUS(op_resolver.AddFloorDiv());
   TF_LITE_ENSURE_STATUS(op_resolver.AddFloorMod());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFramer());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddFullyConnected());
   TF_LITE_ENSURE_STATUS(op_resolver.AddGather());
   TF_LITE_ENSURE_STATUS(op_resolver.AddGatherNd());
   TF_LITE_ENSURE_STATUS(op_resolver.AddGreater());
   TF_LITE_ENSURE_STATUS(op_resolver.AddGreaterEqual());
   TF_LITE_ENSURE_STATUS(op_resolver.AddHardSwish());
   TF_LITE_ENSURE_STATUS(op_resolver.AddIf());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddIrfft());
   TF_LITE_ENSURE_STATUS(op_resolver.AddL2Normalization());
   TF_LITE_ENSURE_STATUS(op_resolver.AddL2Pool2D());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLeakyRelu());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLess());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLessEqual());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLog());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddLogSoftmax());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLogicalAnd());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLogicalNot());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLogicalOr());
   TF_LITE_ENSURE_STATUS(op_resolver.AddLogistic());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddLogSoftmax());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddMaxPool2D());
   TF_LITE_ENSURE_STATUS(op_resolver.AddMaximum());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddMirrorPad());
   TF_LITE_ENSURE_STATUS(op_resolver.AddMean());
   TF_LITE_ENSURE_STATUS(op_resolver.AddMinimum());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddMirrorPad());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddMul());
   TF_LITE_ENSURE_STATUS(op_resolver.AddNeg());
   TF_LITE_ENSURE_STATUS(op_resolver.AddNotEqual());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddOverlapAdd());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddPCAN());
   TF_LITE_ENSURE_STATUS(op_resolver.AddPack());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddPad());
   TF_LITE_ENSURE_STATUS(op_resolver.AddPadV2());
   TF_LITE_ENSURE_STATUS(op_resolver.AddPrelu());
   TF_LITE_ENSURE_STATUS(op_resolver.AddQuantize());
@@ -88,6 +109,7 @@
   TF_LITE_ENSURE_STATUS(op_resolver.AddReshape());
   TF_LITE_ENSURE_STATUS(op_resolver.AddResizeBilinear());
   TF_LITE_ENSURE_STATUS(op_resolver.AddResizeNearestNeighbor());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddRfft());
   TF_LITE_ENSURE_STATUS(op_resolver.AddRound());
   TF_LITE_ENSURE_STATUS(op_resolver.AddRsqrt());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSelectV2());
@@ -99,29 +121,27 @@
   TF_LITE_ENSURE_STATUS(op_resolver.AddSpaceToDepth());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSplit());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSplitV());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddSqueeze());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSqrt());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSquare());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSquaredDifference());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddSqueeze());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddStacker());
   TF_LITE_ENSURE_STATUS(op_resolver.AddStridedSlice());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSub());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSum());
   TF_LITE_ENSURE_STATUS(op_resolver.AddSvdf());
   TF_LITE_ENSURE_STATUS(op_resolver.AddTanh());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddTransposeConv());
   TF_LITE_ENSURE_STATUS(op_resolver.AddTranspose());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddUnpack());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddTransposeConv());
   TF_LITE_ENSURE_STATUS(op_resolver.AddUnidirectionalSequenceLSTM());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddUnpack());
   TF_LITE_ENSURE_STATUS(op_resolver.AddVarHandle());
   TF_LITE_ENSURE_STATUS(op_resolver.AddWhile());
+  TF_LITE_ENSURE_STATUS(op_resolver.AddWindow());
   TF_LITE_ENSURE_STATUS(op_resolver.AddZerosLike());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddDepthwiseConv2D());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddConv2D());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddAveragePool2D());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddPad());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddMaxPool2D());
-  TF_LITE_ENSURE_STATUS(op_resolver.AddMul());
+
   return kTfLiteOk;
 }
+
 }  // namespace tflite
 #endif  // TFLM_BENCHMARK_OP_RESOLVER_H_
diff --git a/tensorflow/lite/micro/tools/layer_by_layer.cc b/tensorflow/lite/micro/tools/layer_by_layer.cc
index d3e096d..d9df228 100644
--- a/tensorflow/lite/micro/tools/layer_by_layer.cc
+++ b/tensorflow/lite/micro/tools/layer_by_layer.cc
@@ -47,8 +47,6 @@
 
 namespace {
 
-using TflmOpResolver = MicroMutableOpResolver<96>;
-
 // Seed used for the random input. Input data shouldn't affect invocation timing
 // so randomness isn't really needed.
 constexpr uint32_t kRandomSeed = 0xFB;