diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt
index e57a40a..df126c4 100644
--- a/src/backends/reference/workloads/CMakeLists.txt
+++ b/src/backends/reference/workloads/CMakeLists.txt
@@ -67,8 +67,8 @@
     RefDetectionPostProcessFloat32Workload.hpp
     RefFakeQuantizationFloat32Workload.cpp
     RefFakeQuantizationFloat32Workload.hpp
-    RefFloorFloat32Workload.cpp
-    RefFloorFloat32Workload.hpp
+    RefFloorWorkload.cpp
+    RefFloorWorkload.hpp
     RefFullyConnectedWorkload.cpp
     RefFullyConnectedWorkload.hpp
     RefGatherWorkload.cpp
diff --git a/src/backends/reference/workloads/RefFloorFloat32Workload.cpp b/src/backends/reference/workloads/RefFloorFloat32Workload.cpp
deleted file mode 100644
index cc1f880..0000000
--- a/src/backends/reference/workloads/RefFloorFloat32Workload.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-﻿//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefFloorFloat32Workload.hpp"
-
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefFloorFloat32Workload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefFloorFloat32Workload_Execute");
-
-    const float* const input = GetInputTensorDataFloat(0, m_Data);
-    float* const output = GetOutputTensorDataFloat(0, m_Data);
-
-    unsigned int numElements = GetTensorInfo(m_Data.m_Inputs[0]).GetNumElements();
-    for (unsigned int i = 0; i < numElements; ++i)
-    {
-        output[i] = floorf(input[i]);
-    }
-}
-
-} //namespace armnn
diff --git a/src/backends/reference/workloads/RefFloorWorkload.cpp b/src/backends/reference/workloads/RefFloorWorkload.cpp
new file mode 100644
index 0000000..d96b18b
--- /dev/null
+++ b/src/backends/reference/workloads/RefFloorWorkload.cpp
@@ -0,0 +1,38 @@
+﻿//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "RefFloorWorkload.hpp"
+
+#include "Decoders.hpp"
+#include "Encoders.hpp"
+#include "RefWorkloadUtils.hpp"
+#include "Profiling.hpp"
+
+namespace armnn
+{
+
+void RefFloorWorkload::Execute() const
+{
+    ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefFloorFloat32Workload_Execute");
+
+    const TensorInfo &inputTensorInfo = GetTensorInfo(m_Data.m_Inputs[0]);
+    std::unique_ptr<Decoder<float>> decoderPtr = MakeDecoder<float>(inputTensorInfo, m_Data.m_Inputs[0]->Map());
+    Decoder<float> &decoder = *decoderPtr;
+
+    const TensorInfo &outputTensorInfo = GetTensorInfo(m_Data.m_Outputs[0]);
+    std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputTensorInfo, m_Data.m_Outputs[0]->Map());
+    Encoder<float> &encoder = *encoderPtr;
+
+    unsigned int numElements = GetTensorInfo(m_Data.m_Inputs[0]).GetNumElements();
+
+    for (unsigned int i = 0; i < numElements; ++i)
+    {
+        encoder.Set(floorf(decoder.Get()));
+        ++decoder;
+        ++encoder;
+    }
+}
+
+} //namespace armnn
diff --git a/src/backends/reference/workloads/RefFloorFloat32Workload.hpp b/src/backends/reference/workloads/RefFloorWorkload.hpp
similarity index 66%
rename from src/backends/reference/workloads/RefFloorFloat32Workload.hpp
rename to src/backends/reference/workloads/RefFloorWorkload.hpp
index 3f540d0..2dea3a4 100644
--- a/src/backends/reference/workloads/RefFloorFloat32Workload.hpp
+++ b/src/backends/reference/workloads/RefFloorWorkload.hpp
@@ -11,10 +11,10 @@
 namespace armnn
 {
 
-class RefFloorFloat32Workload : public Float32Workload<FloorQueueDescriptor>
+class RefFloorWorkload : public BaseWorkload<FloorQueueDescriptor>
 {
 public:
-    using Float32Workload<FloorQueueDescriptor>::Float32Workload;
+    using BaseWorkload<FloorQueueDescriptor>::BaseWorkload;
     virtual void Execute() const override;
 };
 
diff --git a/src/backends/reference/workloads/RefWorkloads.hpp b/src/backends/reference/workloads/RefWorkloads.hpp
index c20e2f6..c8c26b0 100644
--- a/src/backends/reference/workloads/RefWorkloads.hpp
+++ b/src/backends/reference/workloads/RefWorkloads.hpp
@@ -26,7 +26,7 @@
 #include "RefDepthwiseConvolution2dWorkload.hpp"
 #include "FullyConnected.hpp"
 #include "Gather.hpp"
-#include "RefFloorFloat32Workload.hpp"
+#include "RefFloorWorkload.hpp"
 #include "RefSoftmaxWorkload.hpp"
 #include "RefResizeBilinearFloat32Workload.hpp"
 #include "RefBatchNormalizationUint8Workload.hpp"
