When creating the vector shuffle, the "VectorLoadConstNode" will be created to get an initial index vector. It is not well-justified which is backed by a constant in StubRoutines. Instead, the constant can be materialized as a on-heap ByteVector instance, cached in a static final field, and passed into the intrinsic.
An alternative approach would be to replace VectorLoadConst with a LoadVector which performs raw vector access at StubRoutines::_vector_iota_indices address.
An alternative approach would be to replace VectorLoadConst with a LoadVector which performs raw vector access at StubRoutines::_vector_iota_indices address.