; Ktobyvydumali? magic_rabbit dq 4340000000000000h, 4340000000000000h movd xmm0, eax orpd xmm0, [magic_rabbit] subsd xmm0, [magic_rabbit] pextrw...
Процессор не признаёт ни одного из этих опкодов, так же как и код, генерируемый FASM для vpermil2ps xmm1,xmm2,xmm3,xmm4,5 Процессор с AVX, винда тоже
1. Скомпилить с /fp:fast /Ox /arch:SSE 2. distance = (float)(yt - (int)(yt)); переписать с помощью _mm_round_ss (SSE4.1, для более старых...
Агнера Фога читать в оригинале! Версия на Wasm.ru безнадёжно устарела www.agner.org/optimize/
Стандарт H.264 есть и в официальной русской версии. В дополнение к нему смотреть референсный енкодер-декодер JM (в отличие от x264, JM написан...
AsmGuru62 XorShift не проходит Diehard тесты, об этом сказано в статье Marsaglia, где он и предложен (http://www.jstatsoft.org/v08/i14/paper)...
Измерять время выполнения одной инструкции не имеет смысла, ибо счётчик числа тактов обновляется реже, чем раз в такт. Поэтому измеряют всегда...
murder Для кода из поста #13 нужно добавить mov ecx, eax. Иначе ты сравниваешь throughput код #13 с latency кода #33
Z3N Кэш-строка равна 64 байтам только на новых процессорах. Но более старых (например, AMD K8) она равна 32 байтам. Код для определения размера...
medstrax1 Про iret не знал, а теперь ещё и забыл=) Я не знаток системных инструкций. murder Смешивать целочисленные и floating-point SSE команды...
Вариант для Pentium-M ; Clocks 0-1 cmp eax, 10 setae bl cmp eax, 100 setae cl ; Clocks 2-3 cmp eax, 1000 setae bh cmp eax, 10000 setae...
murder Хотя нет, учитывая, что этот кусочек выполняется миллиард раз, на конвеер можно забить. А вот саму функцию numlen стоит заинлайнить: на...
murder До и после выполнения rdtsc нужно сериализовать конвеер, т.е. сказать процессору, чтобы он дождался, пока все команды, которые уже...
Вариант для Intel (Core 2, Nehalem): ; Clock 0 xor ebx, ebx xor ecx, ecx xor edx, edx ; Clocks 1-2 cmp eax, 10 setae bl cmp eax, 100...
murder Пожалуй, последние две строчки лучше переписать так: ; Clock 7 add ebx, ecx mov eax, edx stc ; Clock 8 adc eax, ebx Расписываю по таблица...
Вот код для AMD (K10): ; Clock 0 xor ebx, ebx xor ecx, ecx xor edx, edx ; Clocks 1-2 cmp eax, 10 ; Clock 1 sbb ebx, -1 ; Clock 2 cmp eax, 100 ;...
Я когда-то оптимизировал такую вещь. На AMD быстрее всего вариант Black_Mirror (только лучше использовать несколько регистров в качестве...
Сделать быстрее, чем есть, не получится. Твой код и так имеет latency 2 такта на Nehalem. А параллельный XLAT уже есть. Он называется pshufb
Если ты пишешь алгоритм под MMX/SSE/AVX, следует использовать эти команды для всего алгоритма. Команды PCMPxx устанавливают биты первого операнда...
У Агнера Фога: На Core 2 если цикл меньше 64 байт (вернее, меньше четырёх 16-байтовых линеек кэша), он будет предекодирован только один раз - на...
Имена участников (разделяйте запятой).