質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

2回答

1214閲覧

SSEの単純計算がわかりません

seri

総合スコア422

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2016/07/13 12:15

c

1inline __m128 select(__m128 v1, __m128 v2, __m128 mask) 2{ 3 __m128 t1 = _mm_andnot_ps(mask, v1); 4 __m128 t2 = _mm_and_ps(v2, mask); 5 return _mm_or_ps(t1, t2); 6}

例えば v1 が {0,1,2,3}、v2 が {4,5,6,7} で mask が {0, 0xffffffff, 0xffffffff, 0} の場合、この select() は {0,5,6,3} を返します。

。。。と、サイトのほうにのっていたのですが、いまいちよくわかりません。。

順を追って、回答しますと

andnot演算によって
まずmaskがNot演算にかけられ反転(1,0,0,1)
それを、v1にAnd演算させることにより t1=1,0,0,0

t2は
v2とmaskをAnd演算させて0,1,1,0 //ここ、なぜ0×fff..がTrueになるかわかりませんが、なんとなく。。

最後にOr演算により、retun {0,0,0,1}

bit単位の演算が理解できていないのが原因だとは思うのですが、ここでいきずまってしまっています

アドバイスお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ビット演算はブール代数の真理値表さえ理解していればその組み合わせだけです。

A B AND OR XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

A NOT
0 1
1 0

数値の桁が何桁あっても、加算減算の様に1つ上の桁に繰り上がったり、1つ上の桁から借りてきたりはしないので、この表だけ理解しておけば大丈夫です。

投稿2016/07/13 16:36

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

bit単位の演算が理解できていないのが原因だとは思うのですが

全くその通りのようですね。でも、そこさえクリアすれば大丈夫です。
ビット演算をざっと見て下さい。

さて、0xffffffffは2進数にすると32個の1が連なっています。
処理系のビット数は32ビットと思われますので、0は2進数にすると32個の0が連なっています。
32個の0が連なっている2進数のnotは、32個の1が連なった2進数です。
逆も同様です。

そして、32ビットまでの整数を32個の1が連なった2進数をandした結果は、元の整数の値のままです。
32ビットまでの整数を32個の0が連なった2進数をandした結果は、全てのビットが0になりますので0です。

orについても同様に考えるとよいです。x OR 0 = xですし、x OR 0xffffffff = 0xffffffffです。


andnot演算によって
まずmaskがNot演算にかけられ反転(0xffffffff,0,0,0xffffffff)

それを、v1にAnd演算させることにより t1=0,0,0,3

t2は v2とmaskをAnd演算させて0,5,6,0

最後にOr演算により、retun {0,5,6,3}


投稿2016/07/13 15:29

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問