Implement EMBEDDING_LOOKUP and HASHTABLE_LOOKUP

Bug: 63905942

Adapted previous TF Lite implementation and unit tests for NN API on
CPU.

Test: adb shell /data/nativetest64/embedding_lookup_test/embedding_lookup_test
Test: adb shell /data/nativetest64/hashtable_lookup_test/hashtable_lookup_test

Change-Id: I6e4a9d8c5d0d47e66e3fa771967da3526d19ac4b
diff --git a/common/Android.bp b/common/Android.bp
index c3a2a0c..ca4c6dc 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -29,6 +29,8 @@
 
     srcs: [
         "CpuExecutor.cpp",
+        "EmbeddingLookup.cpp",
+        "HashtableLookup.cpp",
         "LSHProjection.cpp",
         "OperationsUtils.cpp",
         "RNN.cpp",
@@ -76,6 +78,36 @@
 }
 
 cc_test {
+    name: "embedding_lookup_test",
+    srcs: [
+        "EmbeddingLookupTest.cpp",
+    ],
+    shared_libs: [
+        "liblog",
+        "libneuralnetworks",
+    ],
+    static_libs: [
+        "libgmock",
+        "libneuralnetworks_common",
+    ],
+}
+
+cc_test {
+    name: "hashtable_lookup_test",
+    srcs: [
+        "HashtableLookupTest.cpp",
+    ],
+    shared_libs: [
+        "liblog",
+        "libneuralnetworks",
+    ],
+    static_libs: [
+        "libgmock",
+        "libneuralnetworks_common",
+    ],
+}
+
+cc_test {
     name: "lsh_projection_test",
     srcs: [
         "LSHProjectionTest.cpp",
@@ -88,6 +120,7 @@
         "libneuralnetworks_headers",
     ],
     shared_libs: [
+        "liblog",
         "libneuralnetworks",
     ],
 }