Этот тип возможностей в архитектурах SIMD известен как загрузка / сохранение / разброс / сбор данных.К сожалению, у SSE его нет.У будущих SIMD-архитектур от Intel это может быть - злополучный процессор Larrabee был одним из примеров.Пока что вам нужно будет просто спроектировать свои структуры данных таким образом, чтобы подобный функционал не требовался.
Обратите внимание, что вы можете добиться эквивалентного эффекта, например, используя _mm_set_epi8:
y = _mm_set_epi8(arr[x_16], arr[x_15], arr[x_14], ..., arr[x_1]);
хотя, конечно, это просто сгенерирует скалярный код для загрузки вашего вектора y.Это хорошо, если вы выполняете этот тип операций вне каких-либо циклов, критичных к производительности, например, как часть инициализации перед циклом, но внутри цикла это, вероятно, будет причиной снижения производительности.