diff --git a/src/backends/backendsCommon/WorkloadFactoryBase.hpp b/src/backends/backendsCommon/WorkloadFactoryBase.hpp
index e793b44..00e549c 100644
--- a/src/backends/backendsCommon/WorkloadFactoryBase.hpp
+++ b/src/backends/backendsCommon/WorkloadFactoryBase.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2019-2023 Arm Ltd. All rights reserved.
+// Copyright © 2019 Arm Ltd. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -43,7 +43,6 @@
                                                 const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateAddition(const AdditionQueueDescriptor& /*descriptor*/,
                                               const WorkloadInfo& /*info*/) const override
     { return nullptr; }
@@ -104,7 +103,6 @@
                                                           const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateDivision(const DivisionQueueDescriptor& /*descriptor*/,
                                               const WorkloadInfo& /*info*/) const override
     { return nullptr; }
@@ -154,7 +152,6 @@
                                           const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/,
                                              const WorkloadInfo& /*info*/) const override
     { return nullptr; }
@@ -175,12 +172,10 @@
                                            const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/,
                                              const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/,
                                                     const WorkloadInfo& /*info*/) const override
     { return nullptr; }
@@ -253,7 +248,6 @@
                                                   const WorkloadInfo& /*info*/) const override
     { return nullptr; }
 
-    ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use CreateElementwiseBinary instead", "24.02")
     std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/,
                                                  const WorkloadInfo& /*info*/) const override
     { return nullptr; }
diff --git a/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
index a0d1af6..f335218 100644
--- a/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
@@ -30,7 +30,8 @@
 
     TensorInfo outputTensorInfo(outputShape, DataType, qScale, qOffset);
 
-    IConnectableLayer* addition = network->AddElementwiseBinaryLayer(BinaryOperation::Add, "addition");
+
+    IConnectableLayer* addition = network->AddAdditionLayer("addition");
     IConnectableLayer* inputX = network->AddInputLayer(0, "inputX");
     IConnectableLayer* inputY = network->AddInputLayer(1, "inputY");
     IConnectableLayer* output = network->AddOutputLayer(0, "output");
diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
index 9213f0e..795fc13 100644
--- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
@@ -39,7 +39,7 @@
 
     IConnectableLayer* input = net->AddInputLayer(0);
     IConnectableLayer* constant = net->AddConstantLayer(ConstTensor(commonTensorInfo, constantData));
-    IConnectableLayer* add = net->AddElementwiseBinaryLayer(BinaryOperation::Add);
+    IConnectableLayer* add = net->AddAdditionLayer();
     IConnectableLayer* output = net->AddOutputLayer(0);
 
     input->GetOutputSlot(0).Connect(add->GetInputSlot(0));
@@ -176,8 +176,7 @@
         for (unsigned int i = 0; i < out.size(); ++i)
         {
             CHECK_MESSAGE(Compare<ArmnnOType>(it.second[i], out[i], tolerance) == true,
-                    "Position: " << i <<" Actual output: " << static_cast<uint32_t>(out[i]) <<
-                    ". Expected output:" << static_cast<uint32_t>(it.second[i]));
+                    "Actual output: " << out[i] << ". Expected output:" << it.second[i]);
 
         }
     }
diff --git a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
index 5475762..5b95d3c 100644
--- a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
+++ b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
@@ -622,9 +622,7 @@
 // Every entry in the armnn::LayerType enum must be accounted for below.
 DECLARE_LAYER_POLICY_2_PARAM(Activation)
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Addition)
-ARMNN_NO_DEPRECATE_WARN_END
 
 DECLARE_LAYER_POLICY_2_PARAM(ArgMinMax)
 
@@ -696,21 +694,15 @@
 
 DECLARE_LAYER_POLICY_MAP_PARAM(Map, void)
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Maximum)
-ARMNN_NO_DEPRECATE_WARN_END
 
 DECLARE_LAYER_POLICY_2_PARAM(Mean)
 
 DECLARE_LAYER_POLICY_1_PARAM(Merge)
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Minimum)
-ARMNN_NO_DEPRECATE_WARN_END
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Multiplication)
-ARMNN_NO_DEPRECATE_WARN_END
 
 DECLARE_LAYER_POLICY_2_PARAM(Normalization)
 
@@ -734,9 +726,7 @@
 
 DECLARE_LAYER_POLICY_1_PARAM(QuantizedLstm)
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Division)
-ARMNN_NO_DEPRECATE_WARN_END
 
 DECLARE_LAYER_POLICY_1_PARAM(Rank)
 
@@ -762,9 +752,7 @@
 
 DECLARE_LAYER_POLICY_2_PARAM(StridedSlice)
 
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 DECLARE_LAYER_POLICY_1_PARAM(Subtraction)
-ARMNN_NO_DEPRECATE_WARN_END
 
 DECLARE_LAYER_POLICY_2_PARAM(Reduce)
 
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index 665358b..ff32179 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -263,9 +263,7 @@
     armnn::IConnectableLayer* input = net->AddInputLayer(0, "inLayer0");
     armnn::IConnectableLayer* input1 = net->AddInputLayer(1, "inLayer1");
 
-    ARMNN_NO_DEPRECATE_WARN_BEGIN
     armnn::IConnectableLayer* addition = net->AddAdditionLayer("addLayer");
-    ARMNN_NO_DEPRECATE_WARN_END
 
     armnn::IConnectableLayer* output = net->AddOutputLayer(0, "outLayer");
 
diff --git a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
index 7303733..f5a6c42 100644
--- a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
@@ -133,7 +133,6 @@
 }
 
 // Convenience function to add an addition layer to a graph
-ARMNN_NO_DEPRECATE_WARN_BEGIN
 AdditionLayer* AddAdditionaLayer(Graph& graph,
                                  LayerNameToLayerMap& layersInGraph,
                                  const std::string& layerName,
@@ -145,7 +144,6 @@
     layersInGraph.insert(std::make_pair(additionLayer->GetName(), additionLayer));
     return additionLayer;
 }
-ARMNN_NO_DEPRECATE_WARN_END
 
 // Convenience function to check that the given substitution matches the specified expected values
 void CheckSubstitution(const OptimizationViews::SubstitutionPair& substitution,
@@ -752,9 +750,7 @@
                                                                "conv2 layer unoptimizable", outputInfo);
     Convolution2dLayer* const conv3Layer = AddConvolutionLayer(graph, layersInGraph, convolutionDescriptor,
                                                                "conv3 layer", outputInfo);
-    ARMNN_NO_DEPRECATE_WARN_BEGIN
     AdditionLayer* const addLayer = AddAdditionaLayer(graph, layersInGraph, "add layer", outputInfo);
-    ARMNN_NO_DEPRECATE_WARN_END
     Layer* const outputLayer = AddOutputLayer(graph, "output layer");
 
     // Connect the network
