b)
{
a = c;
}
else
{
a = a;
}
Открыть доку от Интела и посмотреть, что там есть и чего нет.
написать алгоритм и дать его пооптимизировать нормальному компилятору
Ну я так буду целый день искать
Попроси гугл по запросу SIMD, команды асемблерные и подобное. Да, у меня где-то в закладках валяется ссылка, но это мне мин 15 искать - лень.
Сайт с описанием интерсинков я нашёл, 5 минут полистал, но там почти везде результат операции это маска 1111 эсли подходит под условие, 0000 не подходит под условие
Ну допустим есть у нас вектор 4 байта: 15, 16, 17, 18 Вектор для сравнения: 16, 16, 16, 16 Число которое я хочу записать в 1 вектор, если там будет элемент меньше чем 16, пускай это число будет 3 Вектор записываемых значений: 3, 3, 3, 3 Сравниваем получаем 255, 0, 0, 0 или же 11111111 00000000 00000000 00000000 Дальше что делать? И? 3, 3, 3, 3 & & & & 255, 0, 0, 0 Получается 3, 0, 0, 0 но мне надо что бы получилось. 3, 15, 17, 18
ну можно попробовать что-то типа a = a + (c-a)*(a<b)
Маска + and
Ну мне в чате по ассемблеру сказали что оператор < это тоже ветвление
я имею в виду векторное сравнение
Какого типа а, б, с?
Да, но есть нюансы и тебе там же послали по адресу, где и что читать и выяснять. В обычном асме это юудет обычное ветвление.
Я вот не бог и всё в мире не помню. По необходимости ткрываю доку и разбираюсь в нюансах.
Обсуждают сегодня