[英]Finding a median of 3 values using SSE2 instruction set
我的輸入數據是16位數據,我需要使用SSE2指令集找到3個值的中值。
如果我有3個16位輸入值A,B和C,我想這樣做:
D = max( max( A, B ), C )
E = min( min( A, B ), C )
median = A + B + C - D - E
我打算使用的C函數是:
誰能提出更好的方法?
您的想法很聰明,但僅使用max和min即可完成較少的操作。
t1 = min(A, B)
t2 = max(A, B)
t3 = min(t2, C)
median = max(t1, t3)
與原始實現中的8條相比,這僅是4條SSE指令。
請注意,這實際上只是N = 3的修剪排序網絡 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.