diff --git a/src/BUILD.bazel b/src/BUILD.bazel
index 8f35c7a..12dc1ca 100644
--- a/src/BUILD.bazel
+++ b/src/BUILD.bazel
@@ -107,7 +107,8 @@
 
 filegroup(
         name = "arm_compute_sve2_srcs",
-        srcs = ["cpu/kernels/activation/generic/sve2/qasymm8.cpp",
+        srcs = ["cpu/kernels/activation/generic/sve2/lut.cpp",
+	"cpu/kernels/activation/generic/sve2/qasymm8.cpp",
 	"cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp",
 	"cpu/kernels/activation/generic/sve2/qsymm16.cpp",
 	"cpu/kernels/add/generic/sve2/qasymm8.cpp",
@@ -115,6 +116,8 @@
 	"cpu/kernels/add/generic/sve2/qsymm16.cpp",
 	"cpu/kernels/elementwise_binary/generic/sve2/qasymm8.cpp",
 	"cpu/kernels/elementwise_binary/generic/sve2/qasymm8_signed.cpp",
+	"cpu/kernels/elementwise_unary/generic/sve2/q8.cpp",
+	"cpu/kernels/lut/generic/sve2/u8.cpp",
 	"cpu/kernels/softmax/generic/sve2/impl.cpp",
 	"cpu/kernels/softmax/generic/sve2/qasymm8.cpp",
 	"cpu/kernels/softmax/generic/sve2/qasymm8_signed.cpp"]  +
@@ -323,7 +326,6 @@
 	"core/NEON/kernels/convolution/winograd/output_transforms/sme_fp32_mopa_4x4_3x3.cpp",
 	"cpu/kernels/activation/generic/sve/fp16.cpp",
 	"cpu/kernels/activation/generic/sve/fp32.cpp",
-	"cpu/kernels/activation/generic/sve/lut.cpp",
 	"cpu/kernels/add/generic/sve/fp16.cpp",
 	"cpu/kernels/add/generic/sve/fp32.cpp",
 	"cpu/kernels/add/generic/sve/impl.cpp",
@@ -336,8 +338,6 @@
 	"cpu/kernels/elementwise_unary/generic/sve/fp32.cpp",
 	"cpu/kernels/elementwise_unary/generic/sve/impl.cpp",
 	"cpu/kernels/elementwise_unary/generic/sve/integer.cpp",
-	"cpu/kernels/elementwise_unary/generic/sve/q8.cpp",
-	"cpu/kernels/lut/generic/sve/u8.cpp",
 	"cpu/kernels/scale/sve/fp16.cpp",
 	"cpu/kernels/scale/sve/fp32.cpp",
 	"cpu/kernels/scale/sve/integer.cpp",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cb48692..5d756da 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -302,7 +302,6 @@
 	core/NEON/kernels/convolution/winograd/output_transforms/sme_fp32_mopa_4x4_3x3.cpp
 	cpu/kernels/activation/generic/sve/fp16.cpp
 	cpu/kernels/activation/generic/sve/fp32.cpp
-	cpu/kernels/activation/generic/sve/lut.cpp
 	cpu/kernels/add/generic/sve/fp16.cpp
 	cpu/kernels/add/generic/sve/fp32.cpp
 	cpu/kernels/add/generic/sve/impl.cpp
@@ -315,8 +314,6 @@
 	cpu/kernels/elementwise_unary/generic/sve/fp32.cpp
 	cpu/kernels/elementwise_unary/generic/sve/impl.cpp
 	cpu/kernels/elementwise_unary/generic/sve/integer.cpp
-	cpu/kernels/elementwise_unary/generic/sve/q8.cpp
-	cpu/kernels/lut/generic/sve/u8.cpp
 	cpu/kernels/scale/sve/fp16.cpp
 	cpu/kernels/scale/sve/fp32.cpp
 	cpu/kernels/scale/sve/integer.cpp
@@ -332,7 +329,8 @@
 target_sources(
     arm_compute_sve2
     PRIVATE
-    cpu/kernels/activation/generic/sve2/qasymm8.cpp
+    cpu/kernels/activation/generic/sve2/lut.cpp
+	cpu/kernels/activation/generic/sve2/qasymm8.cpp
 	cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp
 	cpu/kernels/activation/generic/sve2/qsymm16.cpp
 	cpu/kernels/add/generic/sve2/qasymm8.cpp
@@ -340,6 +338,8 @@
 	cpu/kernels/add/generic/sve2/qsymm16.cpp
 	cpu/kernels/elementwise_binary/generic/sve2/qasymm8.cpp
 	cpu/kernels/elementwise_binary/generic/sve2/qasymm8_signed.cpp
+	cpu/kernels/elementwise_unary/generic/sve2/q8.cpp
+	cpu/kernels/lut/generic/sve2/u8.cpp
 	cpu/kernels/softmax/generic/sve2/impl.cpp
 	cpu/kernels/softmax/generic/sve2/qasymm8.cpp
 	cpu/kernels/softmax/generic/sve2/qasymm8_signed.cpp
@@ -976,5 +976,4 @@
 	runtime/Tensor.cpp
 	runtime/TensorAllocator.cpp
 	runtime/Utils.cpp
-)
-    
\ No newline at end of file
+)
\ No newline at end of file
diff --git a/src/cpu/kernels/CpuActivationKernel.cpp b/src/cpu/kernels/CpuActivationKernel.cpp
index 04a9731..20a8489 100644
--- a/src/cpu/kernels/CpuActivationKernel.cpp
+++ b/src/cpu/kernels/CpuActivationKernel.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2022 Arm Limited.
+ * Copyright (c) 2017-2023 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -47,9 +47,9 @@
 {
 #ifdef ARM_COMPUTE_ENABLE_SVE
     {
-        "sve_q8_activation_lut",
-        [](const ActivationDataTypeISASelectorData & data) { return ActivationLayerInfo::is_lut_supported(data.f, data.dt) && data.cpumodel == CPUModel::A510 && data.isa.sve; },
-        REGISTER_QASYMM8_SVE(arm_compute::cpu::sve_q8_activation_lut)
+        "sve2_q8_activation_lut",
+        [](const ActivationDataTypeISASelectorData & data) { return ActivationLayerInfo::is_lut_supported(data.f, data.dt) && data.cpumodel == CPUModel::A510 && data.isa.sve2; },
+        REGISTER_QASYMM8_SVE2(arm_compute::cpu::sve2_q8_activation_lut)
     },
 #endif // ARM_COMPUTE_ENABLE_SVE
 #ifdef __aarch64__
diff --git a/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp b/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
index dbb752a..04a7f15 100644
--- a/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
+++ b/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
@@ -167,12 +167,12 @@
     },
 #ifdef __aarch64__
     {
-        "sve_q8_elementwise_unary",
+        "sve2_q8_elementwise_unary",
         [](const DataTypeISASelectorData & data)
         {
-            return (data.dt == DataType::QASYMM8 || data.dt == DataType::QASYMM8_SIGNED) && data.isa.sve;
+            return (data.dt == DataType::QASYMM8 || data.dt == DataType::QASYMM8_SIGNED) && data.isa.sve2;
         },
-        REGISTER_QASYMM8_SVE(sve_q8_elementwise_unary),
+        REGISTER_QASYMM8_SVE2(sve2_q8_elementwise_unary),
         &q8_prepare_lut,
     },
     {
diff --git a/src/cpu/kernels/activation/generic/sve/lut.cpp b/src/cpu/kernels/activation/generic/sve2/lut.cpp
similarity index 90%
rename from src/cpu/kernels/activation/generic/sve/lut.cpp
rename to src/cpu/kernels/activation/generic/sve2/lut.cpp
index b404266..2e59757 100644
--- a/src/cpu/kernels/activation/generic/sve/lut.cpp
+++ b/src/cpu/kernels/activation/generic/sve2/lut.cpp
@@ -30,7 +30,7 @@
 namespace cpu
 {
 #ifdef __aarch64__
-void sve_q8_activation_lut(const ITensor *src, ITensor *dst, const ActivationLayerInfo &act_info, const Window &window)
+void sve2_q8_activation_lut(const ITensor *src, ITensor *dst, const ActivationLayerInfo &act_info, const Window &window)
 {
     ARM_COMPUTE_ERROR_ON(!ActivationLayerInfo::is_lut_supported(act_info.activation(), src->info()->data_type()));
     const auto window_end_x  = window.x().end();
@@ -42,7 +42,7 @@
     {
         const auto input_ptr  = input.ptr();
         auto       output_ptr = output.ptr();
-        lut_u8_sve(act_info.lut().data(), 1u, window_end_x, &input_ptr, &output_ptr);
+        lut_u8_sve2(act_info.lut().data(), 1u, window_end_x, &input_ptr, &output_ptr);
     },
     input, output);
 }
diff --git a/src/cpu/kernels/activation/list.h b/src/cpu/kernels/activation/list.h
index c2149b3..6550ddf 100644
--- a/src/cpu/kernels/activation/list.h
+++ b/src/cpu/kernels/activation/list.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020-2022 Arm Limited.
+ * Copyright (c) 2020-2023 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -34,7 +34,7 @@
 #ifdef __aarch64__
 DECLARE_ACTIVATION_KERNEL(neon_q8_activation_lut);
 #endif // __aarch64__
-DECLARE_ACTIVATION_KERNEL(sve_q8_activation_lut);
+DECLARE_ACTIVATION_KERNEL(sve2_q8_activation_lut);
 DECLARE_ACTIVATION_KERNEL(neon_qasymm8_activation);
 DECLARE_ACTIVATION_KERNEL(sve2_qasymm8_activation);
 DECLARE_ACTIVATION_KERNEL(neon_qasymm8_signed_activation);
diff --git a/src/cpu/kernels/elementwise_unary/generic/sve/q8.cpp b/src/cpu/kernels/elementwise_unary/generic/sve2/q8.cpp
similarity index 82%
rename from src/cpu/kernels/elementwise_unary/generic/sve/q8.cpp
rename to src/cpu/kernels/elementwise_unary/generic/sve2/q8.cpp
index b68f691..7e32f50 100644
--- a/src/cpu/kernels/elementwise_unary/generic/sve/q8.cpp
+++ b/src/cpu/kernels/elementwise_unary/generic/sve2/q8.cpp
@@ -29,23 +29,23 @@
 {
 namespace cpu
 {
-
-void sve_q8_elementwise_unary(const ITensor *in, ITensor *out, const Window &window, ElementWiseUnary op, const uint8_t *lut)
+void sve2_q8_elementwise_unary(const ITensor *in, ITensor *out, const Window &window, ElementWiseUnary op, const uint8_t *lut)
 {
     ARM_COMPUTE_UNUSED(op);
 
-    auto win = window;
+    auto       win          = window;
     const auto window_end_x = window.x().end();
     win.set(0, Window::Dimension(0, 1, 1));
 
     Iterator src_it(in, win);
     Iterator dst_it(out, win);
 
-    execute_window_loop(win, [&](const Coordinates &) {
+    execute_window_loop(win, [&](const Coordinates &)
+    {
         const auto src_ptr = src_it.ptr();
-        auto dst_ptr = dst_it.ptr();
+        auto       dst_ptr = dst_it.ptr();
 
-        lut_u8_sve(lut, 1, window_end_x, &src_ptr, &dst_ptr);
+        lut_u8_sve2(lut, 1, window_end_x, &src_ptr, &dst_ptr);
     },
     src_it, dst_it);
 }
diff --git a/src/cpu/kernels/elementwise_unary/list.h b/src/cpu/kernels/elementwise_unary/list.h
index 432fabf..a9701af 100644
--- a/src/cpu/kernels/elementwise_unary/list.h
+++ b/src/cpu/kernels/elementwise_unary/list.h
@@ -37,7 +37,7 @@
 DECLARE_ELEMETWISE_UNARY_KERNEL(sve_fp32_elementwise_unary);
 DECLARE_ELEMETWISE_UNARY_KERNEL(sve_fp16_elementwise_unary);
 DECLARE_ELEMETWISE_UNARY_KERNEL(sve_s32_elementwise_unary);
-DECLARE_ELEMETWISE_UNARY_KERNEL(sve_q8_elementwise_unary);
+DECLARE_ELEMETWISE_UNARY_KERNEL(sve2_q8_elementwise_unary);
 DECLARE_ELEMETWISE_UNARY_KERNEL(neon_fp32_elementwise_unary);
 DECLARE_ELEMETWISE_UNARY_KERNEL(neon_fp16_elementwise_unary);
 DECLARE_ELEMETWISE_UNARY_KERNEL(neon_s32_elementwise_unary);
diff --git a/src/cpu/kernels/lut/generic/sve/u8.cpp b/src/cpu/kernels/lut/generic/sve2/u8.cpp
similarity index 99%
rename from src/cpu/kernels/lut/generic/sve/u8.cpp
rename to src/cpu/kernels/lut/generic/sve2/u8.cpp
index 70f3a2e..b80d753 100644
--- a/src/cpu/kernels/lut/generic/sve/u8.cpp
+++ b/src/cpu/kernels/lut/generic/sve2/u8.cpp
@@ -31,8 +31,7 @@
 {
 namespace cpu
 {
-
-void lut_u8_sve(
+void lut_u8_sve2(
     const uint8_t        *table,
     size_t                num_strings,
     size_t                string_length,
diff --git a/src/cpu/kernels/lut/list.h b/src/cpu/kernels/lut/list.h
index 9749b91..7a2afc6 100644
--- a/src/cpu/kernels/lut/list.h
+++ b/src/cpu/kernels/lut/list.h
@@ -43,7 +43,7 @@
         uint8_t *const       *output)
 
 DECLARE_LUT_KERNEL(lut_u8_neon);
-DECLARE_LUT_KERNEL(lut_u8_sve);
+DECLARE_LUT_KERNEL(lut_u8_sve2);
 
 #undef DECLARE_LUT_KERNEL
 #endif // __aarch64__
