Здравствуйте, 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