diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 010fa00..27e91ae 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -1322,7 +1322,7 @@
                         parentOut->Disconnect(inputSlot);
                         for (unsigned int out = deletedLayer->GetOutputSlot(in -1).GetNumConnections(); out > 0; --out)
                         {
-                            InputSlot *childIn = deletedLayer->GetOutputSlot(in - 1).GetConnection(out -1);
+                            InputSlot* childIn = deletedLayer->GetOutputSlot(in - 1).GetConnection(out -1);
                             deletedLayer->GetOutputSlot(in - 1).Disconnect(*childIn);
                             parentOut->Connect(*childIn);
                         }
diff --git a/src/armnn/SerializeLayerParameters.cpp b/src/armnn/SerializeLayerParameters.cpp
index c318d52..67520a7 100644
--- a/src/armnn/SerializeLayerParameters.cpp
+++ b/src/armnn/SerializeLayerParameters.cpp
@@ -187,6 +187,12 @@
     fn("DataLayout", GetDataLayoutName(desc.m_DataLayout));
 }
 
+void StringifyLayerParameters<ElementwiseBinaryDescriptor>::Serialize(ParameterStringifyFunction& fn,
+                                                                      const ElementwiseBinaryDescriptor& desc)
+{
+    fn("BinaryOperation", GetBinaryOperationAsCString(desc.m_Operation));
+}
+
 void StringifyLayerParameters<ElementwiseUnaryDescriptor>::Serialize(ParameterStringifyFunction& fn,
                                                                      const ElementwiseUnaryDescriptor& desc)
 {
diff --git a/src/armnn/SerializeLayerParameters.hpp b/src/armnn/SerializeLayerParameters.hpp
index b786c53..b90f9d8 100644
--- a/src/armnn/SerializeLayerParameters.hpp
+++ b/src/armnn/SerializeLayerParameters.hpp
@@ -75,6 +75,11 @@
     static void Serialize(ParameterStringifyFunction& fn, const DepthwiseConvolution2dDescriptor& desc);
 };
 
+template <> struct StringifyLayerParameters<ElementwiseBinaryDescriptor>
+{
+    static void Serialize(ParameterStringifyFunction& fn, const ElementwiseBinaryDescriptor& desc);
+};
+
 template <> struct StringifyLayerParameters<ElementwiseUnaryDescriptor>
 {
     static void Serialize(ParameterStringifyFunction& fn, const ElementwiseUnaryDescriptor& desc);
diff --git a/src/backends/backendsCommon/OptimizationViews.cpp b/src/backends/backendsCommon/OptimizationViews.cpp
index a358f88..c9a8c7d 100644
--- a/src/backends/backendsCommon/OptimizationViews.cpp
+++ b/src/backends/backendsCommon/OptimizationViews.cpp
@@ -64,7 +64,7 @@
         for (auto& substitution : m_SuccesfulOptimizations)
         {
             bool validSubstitution = true;
-            const SubgraphView &replacement = substitution.m_ReplacementSubgraph;
+            const SubgraphView& replacement = substitution.m_ReplacementSubgraph;
             const SubgraphView& old = substitution.m_SubstitutableSubgraph;
             validSubstitution &= replacement.GetIInputSlots().size() == old.GetIInputSlots().size();
             validSubstitution &= replacement.GetIOutputSlots().size() == old.GetIOutputSlots().size();
diff --git a/src/backends/backendsCommon/SubgraphUtils.hpp b/src/backends/backendsCommon/SubgraphUtils.hpp
index 823da76..9f2cdba 100644
--- a/src/backends/backendsCommon/SubgraphUtils.hpp
+++ b/src/backends/backendsCommon/SubgraphUtils.hpp
@@ -33,7 +33,7 @@
         {
             case armnn::LayerType::BatchMatMul:
             {
-                auto desc = static_cast<const armnn::BatchMatMulDescriptor &>(descriptor);
+                auto desc = static_cast<const armnn::BatchMatMulDescriptor&>(descriptor);
                 m_Result = desc.m_DataLayoutX == DataLayout::NCHW || desc.m_DataLayoutY == DataLayout::NCHW;
                 break;
             }
@@ -219,12 +219,14 @@
     return false;
 }
 
-/// Checks if the Layer is connected to a Splitter Layer through a Tensor that has more than 4 dimensions.
-inline bool ConnectedToSplitterWithMoreThan4Dims(Layer* baseLayer)
+/// Checks the Layer's Connections to see if it's connected to a Layer with the provided layerType. If dimSize is
+/// provided will also check if the connecting Tensor has more than that number of dimensions
+inline bool ConnectedToLayerType(Layer* baseLayer, LayerType layerType, unsigned int dimSize = 0)
 {
     Layer& parentLayer = baseLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetOwningLayer();
-    TensorInfo parentTensorInfo = baseLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo();
-    if (parentTensorInfo.GetNumDimensions() > 4 && parentLayer.GetType() == LayerType::Splitter)
+    TensorInfo parentTensorInfo = baseLayer->GetInputSlot(0).GetTensorInfo();
+
+    if (parentTensorInfo.GetNumDimensions() > dimSize && parentLayer.GetType() == layerType)
     {
         return true;
     }
@@ -232,7 +234,8 @@
     {
         Layer& nextLayer = baseLayer->GetOutputSlot(0).GetConnection(i)->GetOwningLayer();
         TensorInfo nextTensorInfo = baseLayer->GetOutputSlot(0).GetConnection(i)->GetTensorInfo();
-        if (nextTensorInfo.GetNumDimensions() > 4 && nextLayer.GetType() == LayerType::Splitter)
+
+        if (nextTensorInfo.GetNumDimensions() > dimSize && nextLayer.GetType() == layerType)
         {
             return true;
         }
diff --git a/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp b/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
index ce1eea4..d8e8f60 100644
--- a/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
@@ -54,8 +54,8 @@
         "    edge [fontsize=8 fontcolor=\"blue\" fontname=\"arial-bold\"];\n"
         "    " << inputId << " [label=\"{Input|Guid : " << inputId << "\\lLayerType : Input\\l"
                              "BackendID : CpuRef\\l}\"];\n"
-        "    " << addId << " [label=\"{ElementwiseBinary|Guid : " << addId << "\\lLayerType : ElementwiseBinary\\l"
-                           "BackendID : CpuRef\\l}\"];\n"
+        "    " << addId << " [label=\"{ElementwiseBinary|BinaryOperation : Add\\lGuid : " << addId <<
+                           "\\lLayerType : ElementwiseBinary\\lBackendID : CpuRef\\l}\"];\n"
         "    " << outputId << " [label=\"{Output|Guid : " << outputId << "\\lLayerType : Output\\l"
                               "BackendID : CpuRef\\l}\"];\n"
         "    " << inputId << " -> " << addId << " [label=< [4] >];\n"
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index f4b9fac..5ceab70 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -1,5 +1,5 @@
 #
-# Copyright © 2017,2023 ARM Ltd and Contributors. All rights reserved.
+# Copyright © 2017-2023 ARM Ltd and Contributors. All rights reserved.
 # SPDX-License-Identifier: MIT
 #
 
diff --git a/src/backends/neon/CMakeLists.txt b/src/backends/neon/CMakeLists.txt
index 5934221..1c07773 100644
--- a/src/backends/neon/CMakeLists.txt
+++ b/src/backends/neon/CMakeLists.txt
@@ -1,5 +1,5 @@
 #
-# Copyright © 2017 Arm Ltd. All rights reserved.
+# Copyright © 2017-2020,2022-2023 Arm Ltd. All rights reserved.
 # SPDX-License-Identifier: MIT
 #
 
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 60e2567..5fd1202 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -518,7 +518,7 @@
             }
             // Cannot remove a Reshape if it's connected to a SplitterLayer through a Tensor that has more than
             // 4 dimensions
-            if (ConnectedToSplitterWithMoreThan4Dims(baseLayer))
+            if (ConnectedToLayerType(baseLayer, LayerType::Splitter, 4))
             {
                 continue;
             }
diff --git a/src/backends/neon/NeonTensorHandle.cpp b/src/backends/neon/NeonTensorHandle.cpp
index 819805a..b1ab946 100644
--- a/src/backends/neon/NeonTensorHandle.cpp
+++ b/src/backends/neon/NeonTensorHandle.cpp
@@ -29,17 +29,17 @@
     m_Original = parent;
 }
 
-arm_compute::ITensorInfo *NeonTensorDecorator::info() const
+arm_compute::ITensorInfo* NeonTensorDecorator::info() const
 {
     return &m_TensorInfo;
 }
 
-arm_compute::ITensorInfo *NeonTensorDecorator::info()
+arm_compute::ITensorInfo* NeonTensorDecorator::info()
 {
     return &m_TensorInfo;
 }
 
-uint8_t *NeonTensorDecorator::buffer() const
+uint8_t* NeonTensorDecorator::buffer() const
 {
     return m_Original->buffer();
 }
diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk
index 4150845..0e99c68 100644
--- a/src/backends/neon/backend.mk
+++ b/src/backends/neon/backend.mk
@@ -1,5 +1,5 @@
 #
-# Copyright © 2017,2023 ARM Ltd and Contributors. All rights reserved.
+# Copyright © 2017-2023 ARM Ltd and Contributors. All rights reserved.
 # SPDX-License-Identifier: MIT
 #
 
diff --git a/src/backends/neon/workloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt
index f3f1284..53f2be7 100644
--- a/src/backends/neon/workloads/CMakeLists.txt
+++ b/src/backends/neon/workloads/CMakeLists.txt
@@ -1,5 +1,5 @@
 #
-# Copyright © 2017,2023 Arm Ltd and Contributors. All rights reserved.
+# Copyright © 2017-2020,2022-2023 Arm Ltd and Contributors. All rights reserved.
 # SPDX-License-Identifier: MIT
 #
 
