I'm not sure if this is the case for all intrinsics with bottom and top and variants, but I think that it would be helpful to clarify in documentation that "top" and "bottom" half do not refer a sequential segment of a vector, but rather even-indexed elements and odd-indexed elements of the vector.
https://developer.arm.com/architectures/instruction-sets/intrinsics/%5B__arm_%5Dvmovlbq%5B_u8%5D
It could also be modified here as well:
https://developer.arm.com/documentation/102102/0102/Helium-instructions
The only place where I could seem to find it documented that top and bottom refer to even-indexed and odd-indexed is the arm-helium-technology-mve book: https://armkeil.blob.core.windows.net/developer/Files/pdf/ebook/arm-helium-technology-mve.pdf