ビット演算
■ このスレッドは過去ログ倉庫に格納されています
0537/
NGNGいや、それでOK。
たとえばAltiVecで128個の3bitデータを(1bit×128)×3本レジスタに
転置したデータの加算はこれで実現できる。
; dataA : v0, v1, v2
; dataB : v3, v4, v5
; result : v6, v7, v8
vand v31, v0, v3
vxor v6, v0, v3
vxor v30, v1, v4
vand v29, v1, v4
vxor v7, v30, v31
vxor v31, v30, v31
vor v31, v30, v31
vxor v8, v2, v5
vxor v8, v8, v31
AltiVecやSSE2で扱えるのはせいぜい16個のデータまでだから
算術演算は微妙だが、桁上げの無い論理演算主体のコードならスループットは十分稼げる。
DESやAESにあるような複雑なビット転置にかかるコストも軽い(この場合ECBにしか使えないが)
■ このスレッドは過去ログ倉庫に格納されています