【高速化】ビット演算 ..
910:デフォルトの名無しさん
08/09/28 12:15:36
表引きもいいけど、キャッシュ容量とかミスヒットとか気になるし、
算術シフトもちょっと……という場合にはこっちがいいのでは。
bit8 = -(bit4 & 0x8) | bit4
911:デフォルトの名無しさん
08/09/28 12:29:09
上の動作の流れはこんな感じ。
等幅じゃないと見にくいけど分かってもらえるかな。
src temp dst
????mxyz 00000000 00000000
????mxyz 0000m000 00000000 # temp = src & 0x8
????mxyz 0000m000 mmmmm000 # dst -= temp
????mxyz 0000m000 mmmmmxyz # dst |= src
912:,,・´∀`・,,)っ-○◎●
08/09/28 12:34:50
この程度の小さいテーブルなら表引きは割と効果あるよ。
SSSE3のpshufbやAltiVecのvpermで16並列化もできるし。
913:,,・´∀`・,,)っ-○◎●
08/10/02 00:50:06
>>910
x86で4命令だな。
mov eax, ecx
and eax, 0x08
neg eax
or eax, ecx
ちなみに>>902の方法はこれなら3命令。
mov al, cl
sal al, 4
sar, al 4
ただ、とてつもなくパーシャルレジスタストールの臭いがするぜ
914:デフォルトの名無しさん
08/10/11 16:18:31
Cで上手いことローテート命令に割り当てられるような書き方って何かある?
今は、8ビットローテートの場合は
(val << num) | (val >> (8-num) )
って書いてるけど、アセンブラ見てもまんまシフトとORで作られるんだよな
最後の手段でインラインアセンブラ使ってるけど、誰かCでいい書き方知ってたら教えてくれ
915:デフォルトの名無しさん
08/10/11 16:23:26
そもそもローテート演算子がないからローテートを出力するコンパイラがないんじゃ
916:デフォルトの名無しさん
08/10/11 16:30:52
gccなら
unsigned foo(unsigned x, int n) {
return (x << n) | (x >> (32 - n));
}
で↓になったよ
_foo:
movl 4(%esp), %eax
movl 8(%esp), %ecx
roll %cl, %eax
ret
8ビットは無理だた
917:デフォルトの名無しさん
08/10/11 16:48:33
ダンゴさんならローテートの速度について一言ありそうだな
918:914
08/10/11 16:51:22
あぁ、コンパイラのオプション弄ったらちゃんとローテートになったわ
ちなみにCPUはARM、コンパイラはARM製のコンパイラです
速度に関しては何ビットローテートしても1クロックで済む、RISC万歳
919:デフォルトの名無しさん
08/10/11 17:56:35
>>914
インラインアセンブラで書いたものを、インライン展開できるようにしておくのはダメなの?
インラインの関数呼び出しでは不満?
演算子でやりたいなら、演算子をインライン展開できるように定義すればいいだけだと思うが。
920:,,・´∀`・,,)っ-○◎●
08/10/12 14:47:04
>><とか <<>とかみたいな演算子を逆輸入してくれれば良いんだがねぇ
921:デフォルトの名無しさん
08/10/13 21:04:47
無理に演算子にしなくても、
コンパイラが認識する組込関数にすれば十分だよ。
922:デフォルトの名無しさん
08/10/19 21:43:35
このほうがローテートっぽい
@>
<@
923:デフォルトの名無しさん
08/10/19 21:49:25
>reg>
<reg<
924:デフォルトの名無しさん
08/10/19 22:01:01
925:デフォルトの名無しさん
08/10/20 01:05:00
_lrotr
_lrotl
926:デフォルトの名無しさん
08/10/20 15:43:41
|>
<|
927:デフォルトの名無しさん
08/10/20 22:06:50
>>925
指輪物語?
>>926
シュレディンガー音頭?
928:デフォルトの名無しさん
08/10/21 08:56:43
記号の演算子じゃなくて普通に単語使えばいいのに
ばかでしょ
929:デフォルトの名無しさん
08/10/21 23:59:57
指輪物語はlotrだなw
930:デフォルトの名無しさん
08/10/22 00:38:04
>>929
tlotr
931:デフォルトの名無しさん
08/10/22 00:46:10
公式はLOTR
932:デフォルトの名無しさん
08/10/22 00:53:09
なんで指輪物語スレになってんの・・・
933:デフォルトの名無しさん
08/10/22 00:56:14
>>931
tlotr
ググれば一目瞭然。
934:デフォルトの名無しさん
08/10/22 04:08:26
The Lord of the Rings だし。
935:デフォルトの名無しさん
08/10/22 08:55:55
Lordsな。両方複数系。
936:デフォルトの名無しさん
08/10/22 12:18:22
URLリンク(www.lordoftherings.net)
つまり、オフィシャルサイトは間違っていると。
937:デフォルトの名無しさん
08/10/22 12:34:52
>>935
Lordが正しい。
>>936
「the」がないのは、ドメイン取得の問題じゃないかな。
938:デフォルトの名無しさん
08/10/22 16:44:03
何時の間にか指輪スレ化している流れを豚切。
man gawk を見ると
lshift, rshift って内部関数が実装されているんだな。
939:デフォルトの名無しさん
08/10/22 21:50:42
>>925もVC++独自のローテート関数なわけだが。
指輪とはあんまり関係ない。
940:デフォルトの名無しさん
08/10/22 21:59:17
指輪物語とまで云うならthe fellowship of the ringだろ
941:,,・´∀`・,,)っ-○◎○
08/10/23 01:44:47
lotrをロートルと呼ぼうのスレはここですか?
>>940それ第1章の副題
942:デフォルトの名無しさん
08/10/23 08:38:48
>>941
何…だと……?
943:デフォルトの名無しさん
08/10/25 00:00:41
>>933
lotr の検索結果 約 9,330,000 件中 1 - 10 件目 (0.15 秒)
tlotr の検索結果 約 69,400 件中 1 - 10 件目 (0.17 秒)
一体何が一目瞭然なんだか。
>>937
> 「the」がないのは、ドメイン取得の問題じゃないかな。
レスするなら、URL だけじゃなくてちゃんとページ見ろよ。
省略形で定冠詞を省略するのはごく普通。
2個あるうちの片っぽだけというのはちょっと違和感あるけど。
944:デフォルトの名無しさん
08/10/25 01:12:27
流れぶったぎって次スレ案
【指輪】ビット演算 0x03【物語】
945:デフォルトの名無しさん
08/10/25 01:13:31
いや、つまんないから
946:デフォルトの名無しさん
08/10/25 01:17:20
つーかもうスレ自体不要
947:デフォルトの名無しさん
08/10/25 17:26:25
>>944
これはコラだね、俺は騙されんよ。
948:デフォルトの名無しさん
08/10/25 18:44:44
>>947
>>945
949:デフォルトの名無しさん
08/10/25 18:53:14
>>948
>947
950:デフォルトの名無しさん
08/10/25 21:52:57
>>944-950
>>9
951:デフォルトの名無しさん
08/10/26 20:50:31
>>943
それは省略形であって正式ではない。
テレビジョンよりテレビの方がヒットするのは当たり前だろ。アホか。
952:デフォルトの名無しさん
08/10/26 21:00:55
0を移動していくシフト演算っていい方法ある?
111111011
↓
111110111
↓
111101111
↓
111011111
こう言う感じで
953:デフォルトの名無しさん
08/10/26 21:02:22
a << 1
a | 1
954:デフォルトの名無しさん
08/10/26 21:06:31
>>953
速レスサントス
955:,,・´∀`・,,)っ-●◎○
08/10/26 21:10:29
逆に考えるんだ
1のほうを立てて
00000100
↓
00001000
↓
00010000
↓
00100000
参照するときに反転すればいいと考えるんだ
956:デフォルトの名無しさん
08/10/26 23:24:33
URLリンク(www.amazon.co.jp)
957:デフォルトの名無しさん
08/10/26 23:41:34
>>951
> それは省略形であって正式ではない。
一体何を言ってるんだ?
> テレビジョンよりテレビの方がヒットするのは当たり前だろ。アホか。
アホはお前だよ、単語の区切ぐらい見てるだろ。
yaho の検索結果 約 2,580,000 件中 1 - 10 件目 (0.06 秒)
yahoo の検索結果 約 2,330,000,000 件中 1 - 10 件目 (0.08 秒)
そもそも、どうやって「ググれば一目瞭然」なのか >>933 に聞けよ、クズ。
958:デフォルトの名無しさん
08/10/26 23:54:28
マジで>>944か>>946でいいような気がしてきた
もうどうでもいいよ
959:デフォルトの名無しさん
08/10/27 00:08:36
それ省略になってないし
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5401日前に更新/206 KB
担当:undef