diff --git a/modules/Makefile.am b/modules/Makefile.am
index af423c8f155e14a7a00e40db8b3115bfbdfa0c95..8d76d7ff5f844548dc164b6693e6c8b93a128496 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -18,7 +18,6 @@ include access/Makefile.am
 include access/http/Makefile.am
 include access/rtp/Makefile.am
 include access/rtp/test/Makefile.am
-include arm_neon/Makefile.am
 include audio_filter/Makefile.am
 include audio_mixer/Makefile.am
 include audio_output/Makefile.am
@@ -32,6 +31,7 @@ include hw/d3d11/Makefile.am
 include hw/vaapi/Makefile.am
 include hw/vdpau/Makefile.am
 include hw/mmal/Makefile.am
+include isa/arm/Makefile.am
 include keystore/Makefile.am
 include logger/Makefile.am
 include lua/Makefile.am
diff --git a/modules/audio_filter/Makefile.am b/modules/audio_filter/Makefile.am
index caae1e51b14f79c83a56b89c3cfc8b2f30ef7329..f9ed38fefdf86f82e0e5085072e8eb43b1d750dd 100644
--- a/modules/audio_filter/Makefile.am
+++ b/modules/audio_filter/Makefile.am
@@ -72,7 +72,7 @@ libsimple_channel_mixer_plugin_la_LIBADD =
 
 if HAVE_NEON
 EXTRA_LTLIBRARIES += libsimple_channel_mixer_plugin_arm_neon.la
-libsimple_channel_mixer_plugin_arm_neon_la_SOURCES = arm_neon/simple_channel_mixer.S
+libsimple_channel_mixer_plugin_arm_neon_la_SOURCES = isa/arm/neon/simple_channel_mixer.S
 # Intentionally leaving out AM_LDFLAGS from this one; it's not meant to be
 # built like a plugin.
 libsimple_channel_mixer_plugin_arm_neon_la_LDFLAGS = -static
diff --git a/modules/arm_neon/Makefile.am b/modules/isa/arm/Makefile.am
similarity index 59%
rename from modules/arm_neon/Makefile.am
rename to modules/isa/arm/Makefile.am
index 10f5c15d7c162a6418c7f194ded45e0c0a65c829..9940d7fb6877aaaf90b056b5c9cd87fecd21ee55 100644
--- a/modules/arm_neon/Makefile.am
+++ b/modules/isa/arm/Makefile.am
@@ -1,24 +1,24 @@
 neondir = $(pluginsdir)/arm_neon
 
 libchroma_yuv_neon_plugin_la_SOURCES = \
-	arm_neon/deinterleave_chroma.S \
-	arm_neon/i420_yuyv.S \
-	arm_neon/i422_yuyv.S \
-	arm_neon/yuyv_i422.S \
-	arm_neon/chroma_yuv.c arm_neon/chroma_neon.h
+	isa/arm/neon/deinterleave_chroma.S \
+	isa/arm/neon/i420_yuyv.S \
+	isa/arm/neon/i422_yuyv.S \
+	isa/arm/neon/yuyv_i422.S \
+	isa/arm/neon/chroma_yuv.c isa/arm/neon/chroma_neon.h
 libchroma_yuv_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libchroma_yuv_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
-libvolume_neon_plugin_la_SOURCES = arm_neon/volume.c arm_neon/amplify.S
+libvolume_neon_plugin_la_SOURCES = isa/arm/neon/volume.c isa/arm/neon/amplify.S
 libvolume_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libvolume_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
 libyuv_rgb_neon_plugin_la_SOURCES = \
-	arm_neon/i420_rgb.S \
-	arm_neon/i420_rv16.S \
-	arm_neon/nv21_rgb.S \
-	arm_neon/nv12_rgb.S \
-	arm_neon/yuv_rgb.c
+	isa/arm/neon/i420_rgb.S \
+	isa/arm/neon/i420_rv16.S \
+	isa/arm/neon/nv21_rgb.S \
+	isa/arm/neon/nv12_rgb.S \
+	isa/arm/neon/yuv_rgb.c
 libyuv_rgb_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libyuv_rgb_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
@@ -29,4 +29,4 @@ neon_LTLIBRARIES = \
 	libyuv_rgb_neon_plugin.la
 endif
 
-EXTRA_DIST += arm_neon/asm.S
+noinst_HEADERS += isa/arm/asm.S
diff --git a/modules/arm_neon/asm.S b/modules/isa/arm/asm.S
similarity index 100%
rename from modules/arm_neon/asm.S
rename to modules/isa/arm/asm.S
diff --git a/modules/arm_neon/amplify.S b/modules/isa/arm/neon/amplify.S
similarity index 99%
rename from modules/arm_neon/amplify.S
rename to modules/isa/arm/neon/amplify.S
index 59c945445b7636642ede5bed461987047a9aaa72..bb2671ea60a0b27745404f698102af5fe8f9a433 100644
--- a/modules/arm_neon/amplify.S
+++ b/modules/isa/arm/neon/amplify.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax	unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/chroma_neon.h b/modules/isa/arm/neon/chroma_neon.h
similarity index 100%
rename from modules/arm_neon/chroma_neon.h
rename to modules/isa/arm/neon/chroma_neon.h
diff --git a/modules/arm_neon/chroma_yuv.c b/modules/isa/arm/neon/chroma_yuv.c
similarity index 99%
rename from modules/arm_neon/chroma_yuv.c
rename to modules/isa/arm/neon/chroma_yuv.c
index bf72154a76b31ecddf23e9b7bea531a0ee61481d..d693a7fabe1e919a00b09b6155c72e0bdc42b431 100644
--- a/modules/arm_neon/chroma_yuv.c
+++ b/modules/isa/arm/neon/chroma_yuv.c
@@ -27,7 +27,7 @@
 #include <vlc_filter.h>
 #include <vlc_picture.h>
 #include <vlc_cpu.h>
-#include "arm_neon/chroma_neon.h"
+#include "chroma_neon.h"
 
 static int Open (filter_t *);
 
diff --git a/modules/arm_neon/deinterleave_chroma.S b/modules/isa/arm/neon/deinterleave_chroma.S
similarity index 98%
rename from modules/arm_neon/deinterleave_chroma.S
rename to modules/isa/arm/neon/deinterleave_chroma.S
index 7c0723e2f6c1c5c16a18b4db4dbba43438b43358..ba45e4cf950392ac668bbb4266493702d3afbd10 100644
--- a/modules/arm_neon/deinterleave_chroma.S
+++ b/modules/isa/arm/neon/deinterleave_chroma.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_rgb.S b/modules/isa/arm/neon/i420_rgb.S
similarity index 99%
rename from modules/arm_neon/i420_rgb.S
rename to modules/isa/arm/neon/i420_rgb.S
index 6624c4e6046ca92121143356d042e3276e7a5c4a..8db0e2c6b383450a951cf8cf6030aeb7bc189bb3 100644
--- a/modules/arm_neon/i420_rgb.S
+++ b/modules/isa/arm/neon/i420_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_rv16.S b/modules/isa/arm/neon/i420_rv16.S
similarity index 99%
rename from modules/arm_neon/i420_rv16.S
rename to modules/isa/arm/neon/i420_rv16.S
index a3bbae2ed1fa86d95bca18d5aadf9eda897aac26..eb8550354f43a7673ac48f559456262cb47bc430 100644
--- a/modules/arm_neon/i420_rv16.S
+++ b/modules/isa/arm/neon/i420_rv16.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_yuyv.S b/modules/isa/arm/neon/i420_yuyv.S
similarity index 99%
rename from modules/arm_neon/i420_yuyv.S
rename to modules/isa/arm/neon/i420_yuyv.S
index 22355e0b6140270052b797e37f78e113b658ca1f..0957bbf126073b6bec71b948dae39c6cc437542a 100644
--- a/modules/arm_neon/i420_yuyv.S
+++ b/modules/isa/arm/neon/i420_yuyv.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i422_yuyv.S b/modules/isa/arm/neon/i422_yuyv.S
similarity index 99%
rename from modules/arm_neon/i422_yuyv.S
rename to modules/isa/arm/neon/i422_yuyv.S
index 9a5b8fc4b8c4d13c67a3619594ab7aeec061cbe2..a8f31fb507f85e34f6efe6f08598d63257fd918c 100644
--- a/modules/arm_neon/i422_yuyv.S
+++ b/modules/isa/arm/neon/i422_yuyv.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/nv12_rgb.S b/modules/isa/arm/neon/nv12_rgb.S
similarity index 99%
rename from modules/arm_neon/nv12_rgb.S
rename to modules/isa/arm/neon/nv12_rgb.S
index ceef76cbefb852354bc2151f01bee7ba127a1289..fa87250d57b9ba0426577faa53390757ce92e409 100644
--- a/modules/arm_neon/nv12_rgb.S
+++ b/modules/isa/arm/neon/nv12_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/nv21_rgb.S b/modules/isa/arm/neon/nv21_rgb.S
similarity index 99%
rename from modules/arm_neon/nv21_rgb.S
rename to modules/isa/arm/neon/nv21_rgb.S
index 0d75b9f7f91df6ec7d097603db490d85a0297b0b..38396fa87e8f12eb8fa44657777fc5177866c776 100644
--- a/modules/arm_neon/nv21_rgb.S
+++ b/modules/isa/arm/neon/nv21_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/simple_channel_mixer.S b/modules/isa/arm/neon/simple_channel_mixer.S
similarity index 99%
rename from modules/arm_neon/simple_channel_mixer.S
rename to modules/isa/arm/neon/simple_channel_mixer.S
index cf9b1b531ef3ade2fd1e55e263e7df99eea08ba0..f578d7aa77675a7dbc89a1a79c54b4ba60074d7a 100644
--- a/modules/arm_neon/simple_channel_mixer.S
+++ b/modules/isa/arm/neon/simple_channel_mixer.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 #if HAVE_AS_FPU_DIRECTIVE
 	.fpu	neon
diff --git a/modules/arm_neon/volume.c b/modules/isa/arm/neon/volume.c
similarity index 100%
rename from modules/arm_neon/volume.c
rename to modules/isa/arm/neon/volume.c
diff --git a/modules/arm_neon/yuv_rgb.c b/modules/isa/arm/neon/yuv_rgb.c
similarity index 99%
rename from modules/arm_neon/yuv_rgb.c
rename to modules/isa/arm/neon/yuv_rgb.c
index 5dca930f218a3a7c8648df6cd5ac697dab4fa9f9..41c2ea0206cd3b738514a10be868a56d760bbe89 100644
--- a/modules/arm_neon/yuv_rgb.c
+++ b/modules/isa/arm/neon/yuv_rgb.c
@@ -28,7 +28,7 @@
 #include <vlc_filter.h>
 #include <vlc_picture.h>
 #include <vlc_cpu.h>
-#include "arm_neon/chroma_neon.h"
+#include "chroma_neon.h"
 
 static int Open (filter_t *);
 
diff --git a/modules/arm_neon/yuyv_i422.S b/modules/isa/arm/neon/yuyv_i422.S
similarity index 99%
rename from modules/arm_neon/yuyv_i422.S
rename to modules/isa/arm/neon/yuyv_i422.S
index 62d826c838795af4726bd86a0393a6e4da42d959..98ddfd0ce7d3b6c907b7ce4d8c0530fa32d51ec7 100644
--- a/modules/arm_neon/yuyv_i422.S
+++ b/modules/isa/arm/neon/yuyv_i422.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/video_filter/deinterlace/merge_arm.S b/modules/video_filter/deinterlace/merge_arm.S
index fb085114efc250bf266dab86bc51c6801aa6ccce..99e296c5463b582328ed36baa68f417484880812 100644
--- a/modules/video_filter/deinterlace/merge_arm.S
+++ b/modules/video_filter/deinterlace/merge_arm.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.syntax	unified
 #if HAVE_AS_ARCH_DIRECTIVE
diff --git a/modules/video_filter/deinterlace/merge_arm64.S b/modules/video_filter/deinterlace/merge_arm64.S
index 77c3dcc0fcae0ba9d7f8ef803cc651c6f07e74e9..91001d30d10377e87beb171c6edb7933015b1fba 100644
--- a/modules/video_filter/deinterlace/merge_arm64.S
+++ b/modules/video_filter/deinterlace/merge_arm64.S
@@ -19,7 +19,7 @@
  // Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  //****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.arch armv8-a+simd
 	.text
diff --git a/modules/video_filter/deinterlace/merge_sve.S b/modules/video_filter/deinterlace/merge_sve.S
index 52888853d1ae8b340cf20d3c5f25634cf8f67b7f..28b4a5106170d74799f65ed6eb1b7cb77bef64cf 100644
--- a/modules/video_filter/deinterlace/merge_sve.S
+++ b/modules/video_filter/deinterlace/merge_sve.S
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.arch armv8-a+sve
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 83ce81d46a85922064c7bca71fe3b7fb9955164b..2387839be271df32e12facad1d5f911c1c79143b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -222,9 +222,6 @@ modules/access_output/livehttp.c
 modules/access_output/rist.c
 modules/access_output/shout.c
 modules/access_output/srt.c
-modules/arm_neon/chroma_yuv.c
-modules/arm_neon/volume.c
-modules/arm_neon/yuv_rgb.c
 modules/audio_filter/audiobargraph_a.c
 modules/audio_filter/channel_mixer/dolby.c
 modules/audio_filter/channel_mixer/headphone.c
@@ -1134,6 +1131,9 @@ modules/hw/vdpau/chroma.c
 modules/hw/vdpau/deinterlace.c
 modules/hw/vdpau/display.c
 modules/hw/vdpau/sharpen.c
+modules/isa/arm/neon/chroma_yuv.c
+modules/isa/arm/neon/volume.c
+modules/isa/arm/neon/yuv_rgb.c
 modules/keystore/file.c
 modules/keystore/keychain.m
 modules/keystore/kwallet.c