Re[3]: "Векторные" операции на скалярах большего размера
От: Pavel Dvorkin Россия  
Дата: 05.11.22 15:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>А почему без SIMD ? Надо, чтобы на 8088 работало ?
S>Да, типа того. Ну, и плюс некоторые экзотические сценарии с векторизацией операций со смешением разрядностей. Типа (byte) x + (byte) y + (int)z. В зависимости от того, с какой ассоциативностью мы выполняем операцию, мы можем попробовать сделать конверсию либо до сложения, либо после. Если до, то всё просто — это, скажем, VPMOVZXBD, после которого выполняем VPADDD. А вот если после, то сначала мы хотим получить 8 частичных сумм для байтов, а уже потом делать VPMOVZXBD и второе сложение.

Ну такое просто командами процессора едва ли возможно. Тут впору сценарий писать — в каком порядке в зависимости от чего.

S>К сожалению, в дотнете нету MMX-интринсиков.


MMX я и впрямь не нашел, но intrinsic есть. SSE2 как минимум содержит ту же PADDB, правда, на xmm

https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.intrinsics.x86?view=net-6.0

S>Ладно, попробуем зайти с другого конца.


Нормальные герои всегда идут в обход

https://www.youtube.com/watch?v=okG8qrzv53k
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.