У меня есть следующая функция, я пытаюсь написать версию AXV для:
void
hashids_shuffle(char *str, size_t str_length, char *salt, size_t salt_length)
{
size_t i, j, v, p;
char temp;
if (!salt_length) {
return;
}
for (i = str_length - 1, v = 0, p = 0; i > 0; --i, ++v) {
v %= salt_length;
p += salt[v];
j = (salt[v] + v + p) % i;
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
Я пытаюсь vectorize v %= salt_length;
.
Я хочу инициализировать вектор, содержащий числа от 0 до str_length, чтобы использовать SVML _ mm_rem_epu64 для вычисления v для каждой итерации цикла.
Как правильно инициализировать вектор?