给定一个4字节的寄存器(或16个字节的SIMD寄存器),必须有一种有效的方法使用少量指令在寄存器中对字节进行排序。
提前感谢。
找到了!它在2007年的论文《使用SIMD寄存器和指令在排序算法中实现指令级并行性》(Furtak,Amaral和Niewiadomski)第4节中。
它使用4个SSE寄存器,有12个步骤,并且包括加载和存储在内的指令共计19条。
同一篇论文还介绍了使用SIMD动态生成排序网络的优秀工作。
查找一个高效的排序网络,使其适用于您关心的字节数(4或16)。将其转换为比较和交换指令序列。(对于 N=16,这将是不少于“几个”的。)