IVGCVSW-2701 Add Serializer and Deserializer for Pad

Change-Id: I71184236f0394518f29944a77d4b934cbde9e53d
Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 2000726..868a36d 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -306,6 +306,29 @@
     CreateAnyLayer(flatBufferMultiplicationLayer.o, serializer::Layer::Layer_MultiplicationLayer);
 }
 
+void SerializerVisitor::VisitPadLayer(const armnn::IConnectableLayer* layer,
+                                      const armnn::PadDescriptor& padDescriptor,
+                                      const char* name)
+{
+    auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Pad);
+
+    std::vector<unsigned int> padList;
+    for (auto& p: padDescriptor.m_PadList)
+    {
+        padList.push_back(p.first);
+        padList.push_back(p.second);
+    }
+
+    auto flatBufferPadDesc = serializer::CreatePadDescriptor(m_flatBufferBuilder,
+                                                             m_flatBufferBuilder.CreateVector(padList));
+
+    auto flatBufferPadLayer = serializer::CreatePadLayer(m_flatBufferBuilder,
+                                                         flatBufferBaseLayer,
+                                                         flatBufferPadDesc);
+
+    CreateAnyLayer(flatBufferPadLayer.o, serializer::Layer::Layer_PadLayer);
+}
+
 void SerializerVisitor::VisitPermuteLayer(const armnn::IConnectableLayer* layer,
                                           const armnn::PermuteDescriptor& permuteDescriptor,
                                           const char* name)