Цикл не векторизован по причине «1300». ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Цикл не векторизован по причине «1300».

Сообщение Anonymous »

Я пытаюсь векторизовать цикл, который выполняет много итераций (более 300 000 000), чтобы выиграть время вычислений:

Код: Выделить всё

uint16_t* samples = (uint16_t*)pixmap->samples;

Image image(pixmap->w, pixmap->h);
uint8_t *dest = (uint8_t*)image[0];

for (int x = 0; x < len; x++)
{
dest[x] = samples[x] & 0xFF;
}
Но в отчете qvec говорится, что векторизация невозможна по причине 1300.

Согласно MSDN, причина 1300:


Тело цикла не содержит или содержит очень мало вычислений.

Действительно, тело моего цикла выполняет очень мало вычислений, но поскольку итераций много, это все равно занимает некоторое время.

Почему в этом случае векторизация не выполняется? Потому что оно того не стоило? Если да, то почему?

Если нет, есть ли какой-нибудь способ «заставить» это?

Подробнее здесь: https://stackoverflow.com/questions/373 ... eason-1300

Вернуться в «C++»