Relocate NN operation validation code to types/operations

This CL renames/relocates:
* common/operations/${Foo}.h to
  common/types/operations/include/${Foo}.h.
* common/operations/${Foo}Validation.cpp to
  common/types/operations/src/${Foo}.cpp.
* common/operations/${Foo}Execution.cpp to
  common/cpu_operations/${Foo}.cpp.
* common/operations/${Foo}Test.cpp to
  common/cpu_operations/${Foo}Test.cpp.

Bug: 163801800
Test: cd packages/modules/NeuralNetworks && mma
Test: presubmit
Test: NeuralNetworksTest_static
Change-Id: Ib95e840cbf14b8eddc8b7d4f490a1df94b2f3b7c
diff --git a/common/Android.bp b/common/Android.bp
index 3107a5f..159ceee 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -29,82 +29,78 @@
 
 // The following files took too much time to compile with clang-tidy.
 tidy_disabled_common_operations_files = [
-    "operations/ActivationExecution.cpp",
-    "operations/BroadcastExecution.cpp",
-    "operations/ConcatenationExecution.cpp",
-    "operations/Conv2DExecution.cpp",
-    "operations/FullyConnectedExecution.cpp",
-    "operations/L2NormalizationExecution.cpp",
-    "operations/LocalResponseNormalizationExecution.cpp",
-    "operations/PReluExecution.cpp",
-    "operations/PoolingExecution.cpp",
-    "operations/ReshapeExecution.cpp",
-    "operations/SimpleMathExecution.cpp",
-    "operations/SoftmaxExecution.cpp",
-    "operations/TransposeExecution.cpp",
+    "cpu_operations/Activation.cpp",
+    "cpu_operations/Broadcast.cpp",
+    "cpu_operations/Concatenation.cpp",
+    "cpu_operations/Conv2D.cpp",
+    "cpu_operations/FullyConnected.cpp",
+    "cpu_operations/L2Normalization.cpp",
+    "cpu_operations/LocalResponseNormalization.cpp",
+    "cpu_operations/PRelu.cpp",
+    "cpu_operations/Pooling.cpp",
+    "cpu_operations/Reshape.cpp",
+    "cpu_operations/SimpleMath.cpp",
+    "cpu_operations/Softmax.cpp",
+    "cpu_operations/Transpose.cpp",
 ]
 
 cc_defaults {
     name: "neuralnetworks_operations",
     host_supported: true,
+    local_include_dirs: ["types/operations/include"],
     srcs: [
         "OperationResolver.cpp",
-        "operations/ActivationExecution.cpp",
-        "operations/BatchMatmulExecution.cpp",
-        "operations/BidirectionalSequenceRNNExecution.cpp",
-        "operations/BroadcastExecution.cpp",
-        "operations/ChannelShuffleExecution.cpp",
-        "operations/ComparisonsExecution.cpp",
-        "operations/ConcatenationExecution.cpp",
-        "operations/Conv2DExecution.cpp",
-        "operations/DensifyExecution.cpp",
-        "operations/DepthwiseConv2DExecution.cpp",
-        "operations/DequantizeExecution.cpp",
-        "operations/ElementwiseExecution.cpp",
-        "operations/EluExecution.cpp",
-        "operations/FillExecution.cpp",
-        "operations/FullyConnectedExecution.cpp",
-        "operations/GatherExecution.cpp",
-        "operations/GenerateProposalsExecution.cpp",
-        "operations/HeatmapMaxKeypointExecution.cpp",
-        "operations/InstanceNormalizationExecution.cpp",
-        "operations/L2NormalizationExecution.cpp",
-        "operations/LocalResponseNormalizationExecution.cpp",
-        "operations/LogSoftmaxExecution.cpp",
-        "operations/LogicalAndOrExecution.cpp",
-        "operations/LogicalNotExecution.cpp",
-        "operations/MirrorPadExecution.cpp",
-        "operations/NegExecution.cpp",
-        "operations/PReluExecution.cpp",
-        "operations/PackExecution.cpp",
-        "operations/PoolingExecution.cpp",
-        "operations/QLSTMExecution.cpp",
-        "operations/QuantizeExecution.cpp",
-        "operations/RankExecution.cpp",
-        "operations/ReduceExecution.cpp",
-        "operations/ResizeImageOpsExecution.cpp",
-        "operations/ReverseExecution.cpp",
-        "operations/RoiAlignExecution.cpp",
-        "operations/RoiPoolingExecution.cpp",
-        "operations/SelectExecution.cpp",
-        "operations/SliceExecution.cpp",
-        "operations/SoftmaxExecution.cpp",
-        "operations/SqueezeExecution.cpp",
-        "operations/StridedSliceExecution.cpp",
-        "operations/TopK_V2Execution.cpp",
-        "operations/TransposeConv2DExecution.cpp",
-        "operations/TransposeExecution.cpp",
-        "operations/UnidirectionalSequenceLSTMExecution.cpp",
-        "operations/UnidirectionalSequenceRNNExecution.cpp",
+        "cpu_operations/Activation.cpp",
+        "cpu_operations/BatchMatmul.cpp",
+        "cpu_operations/BidirectionalSequenceRNN.cpp",
+        "cpu_operations/Broadcast.cpp",
+        "cpu_operations/ChannelShuffle.cpp",
+        "cpu_operations/Comparisons.cpp",
+        "cpu_operations/Concatenation.cpp",
+        "cpu_operations/Conv2D.cpp",
+        "cpu_operations/Densify.cpp",
+        "cpu_operations/DepthwiseConv2D.cpp",
+        "cpu_operations/Dequantize.cpp",
+        "cpu_operations/Elementwise.cpp",
+        "cpu_operations/Elu.cpp",
+        "cpu_operations/Fill.cpp",
+        "cpu_operations/FullyConnected.cpp",
+        "cpu_operations/Gather.cpp",
+        "cpu_operations/GenerateProposals.cpp",
+        "cpu_operations/HeatmapMaxKeypoint.cpp",
+        "cpu_operations/InstanceNormalization.cpp",
+        "cpu_operations/L2Normalization.cpp",
+        "cpu_operations/LocalResponseNormalization.cpp",
+        "cpu_operations/LogSoftmax.cpp",
+        "cpu_operations/LogicalAndOr.cpp",
+        "cpu_operations/LogicalNot.cpp",
+        "cpu_operations/MirrorPad.cpp",
+        "cpu_operations/Neg.cpp",
+        "cpu_operations/PRelu.cpp",
+        "cpu_operations/Pack.cpp",
+        "cpu_operations/Pooling.cpp",
+        "cpu_operations/QLSTM.cpp",
+        "cpu_operations/Quantize.cpp",
+        "cpu_operations/Rank.cpp",
+        "cpu_operations/Reduce.cpp",
+        "cpu_operations/ResizeImageOps.cpp",
+        "cpu_operations/Reverse.cpp",
+        "cpu_operations/RoiAlign.cpp",
+        "cpu_operations/RoiPooling.cpp",
+        "cpu_operations/Select.cpp",
+        "cpu_operations/Slice.cpp",
+        "cpu_operations/Softmax.cpp",
+        "cpu_operations/Squeeze.cpp",
+        "cpu_operations/StridedSlice.cpp",
+        "cpu_operations/TopK_V2.cpp",
+        "cpu_operations/Transpose.cpp",
+        "cpu_operations/TransposeConv2D.cpp",
+        "cpu_operations/UnidirectionalSequenceLSTM.cpp",
+        "cpu_operations/UnidirectionalSequenceRNN.cpp",
     ],
     tidy_disabled_srcs: tidy_disabled_common_operations_files,
 }
 
-filegroup {
-    name: "neuralnetworks_operations_validation",
-    srcs: ["operations/*Validation.cpp"],
-}
-
 // libneuralnetworks_common* provides common utilities for the NNAPI runtime, drivers, and tests to
 // use. Two variants of the common library are provided:
 // - libneuralnetworks_common: the common library, used by NNAPI runtime and tests.
@@ -150,25 +146,25 @@
         "QuantUtils.cpp",
         "TokenHasher.cpp",
         "ValidateHal.cpp",
-        "operations/ArgMinMaxExecution.cpp",
-        "operations/BidirectionalSequenceLSTMExecution.cpp",
-        "operations/CastExecution.cpp",
-        "operations/EmbeddingLookupExecution.cpp",
-        "operations/ExpandDimsExecution.cpp",
-        "operations/GroupedConv2DExecution.cpp",
-        "operations/HashtableLookupExecution.cpp",
-        "operations/LSHProjectionExecution.cpp",
-        "operations/LSTMExecution.cpp",
-        "operations/MaximumMinimumExecution.cpp",
-        "operations/MultinomialExecution.cpp",
-        "operations/PowExecution.cpp",
-        "operations/QuantizedLSTMExecution.cpp",
-        "operations/RNNExecution.cpp",
-        "operations/ReshapeExecution.cpp",
-        "operations/SVDFExecution.cpp",
-        "operations/SimpleMathExecution.cpp",
-        "operations/SplitExecution.cpp",
-        "operations/TileExecution.cpp",
+        "cpu_operations/ArgMinMax.cpp",
+        "cpu_operations/BidirectionalSequenceLSTM.cpp",
+        "cpu_operations/Cast.cpp",
+        "cpu_operations/EmbeddingLookup.cpp",
+        "cpu_operations/ExpandDims.cpp",
+        "cpu_operations/GroupedConv2D.cpp",
+        "cpu_operations/HashtableLookup.cpp",
+        "cpu_operations/LSHProjection.cpp",
+        "cpu_operations/LSTM.cpp",
+        "cpu_operations/MaximumMinimum.cpp",
+        "cpu_operations/Multinomial.cpp",
+        "cpu_operations/Pow.cpp",
+        "cpu_operations/QuantizedLSTM.cpp",
+        "cpu_operations/RNN.cpp",
+        "cpu_operations/Reshape.cpp",
+        "cpu_operations/SVDF.cpp",
+        "cpu_operations/SimpleMath.cpp",
+        "cpu_operations/Split.cpp",
+        "cpu_operations/Tile.cpp",
     ],
     shared_libs: [
         "[email protected]",
@@ -316,6 +312,7 @@
 cc_library_static {
     name: "libneuralnetworks_common_cl_cpu",
     defaults: ["libneuralnetworks_common_cl_defaults"],
+    local_include_dirs: ["types/operations/include"],
     header_libs: [
         "gemmlowp_headers",
         "libeigen",
@@ -334,25 +331,25 @@
     srcs: [
         "ActivationFunctor.cpp",
         "QuantUtils.cpp",
-        "operations/ArgMinMaxExecution.cpp",
-        "operations/BidirectionalSequenceLSTMExecution.cpp",
-        "operations/CastExecution.cpp",
-        "operations/EmbeddingLookupExecution.cpp",
-        "operations/ExpandDimsExecution.cpp",
-        "operations/GroupedConv2DExecution.cpp",
-        "operations/HashtableLookupExecution.cpp",
-        "operations/LSHProjectionExecution.cpp",
-        "operations/LSTMExecution.cpp",
-        "operations/MaximumMinimumExecution.cpp",
-        "operations/MultinomialExecution.cpp",
-        "operations/PowExecution.cpp",
-        "operations/QuantizedLSTMExecution.cpp",
-        "operations/RNNExecution.cpp",
-        "operations/ReshapeExecution.cpp",
-        "operations/SVDFExecution.cpp",
-        "operations/SimpleMathExecution.cpp",
-        "operations/SplitExecution.cpp",
-        "operations/TileExecution.cpp",
+        "cpu_operations/ArgMinMax.cpp",
+        "cpu_operations/BidirectionalSequenceLSTM.cpp",
+        "cpu_operations/Cast.cpp",
+        "cpu_operations/EmbeddingLookup.cpp",
+        "cpu_operations/ExpandDims.cpp",
+        "cpu_operations/GroupedConv2D.cpp",
+        "cpu_operations/HashtableLookup.cpp",
+        "cpu_operations/LSHProjection.cpp",
+        "cpu_operations/LSTM.cpp",
+        "cpu_operations/MaximumMinimum.cpp",
+        "cpu_operations/Multinomial.cpp",
+        "cpu_operations/Pow.cpp",
+        "cpu_operations/QuantizedLSTM.cpp",
+        "cpu_operations/RNN.cpp",
+        "cpu_operations/Reshape.cpp",
+        "cpu_operations/SVDF.cpp",
+        "cpu_operations/SimpleMath.cpp",
+        "cpu_operations/Split.cpp",
+        "cpu_operations/Tile.cpp",
     ],
     cflags: [
         "-DNAMESPACE_FOR_HASH_FUNCTIONS=farmhash",
@@ -409,8 +406,9 @@
 cc_test {
     name: "NeuralNetworksTest_operations",
     defaults: ["NeuralNetworksTest_common"],
+    local_include_dirs: ["types/operations/include"],
     srcs: [
-        "operations/*Test.cpp",
+        "cpu_operations/*Test.cpp",
     ],
     header_libs: [
         "gemmlowp_headers",