Ответ 1
Этот вид возможностей в архитектурах 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. Это нормально, если вы выполняете такую операцию за пределами критически важных циклов, например. как часть инициализации до цикла, но внутри цикла он, вероятно, будет убийцей производительности.