/* xor128()をSSE2で実装してみました。XorShift は SIMD に向かない事がわかりました。*/
#include <stdio.h>
#include <time.h>
#include <emmintrin.h>
unsigned long xor128(void){
static unsigned long x=123456789UL,y=362436069UL,z=521288629UL,w=88675123UL;
unsigned long t;t=(x^(x<<11));x=y;y=z;z=w;return(w=(w^(w>>19))^(t^(t>>8)));}
unsigned long xor128sse2(void){
static union{unsigned long v[4];__m128i m;}u={123456789UL,362436069UL,521288629UL,88675123UL};
__m128i x=u.m, w, t, r; r=_mm_slli_epi32(x,11);t=_mm_xor_si128(x,r); w=_mm_srli_si128(x,12);
x=_mm_srli_si128(x,4); r=_mm_srli_epi32(w,19);w=_mm_xor_si128(w,r); r=_mm_srli_epi32(t,8);
t=_mm_xor_si128(t,r); w=_mm_xor_si128(w,t); r=_mm_slli_si128(w,12);x=_mm_or_si128(x,r);
_mm_store_si128(&u.m,x);return(u.v[3]);}
void main(void){long i,c;
for(i=0;i<16;i++)printf("%8lx %8lx\n",xor128(),xor128sse2());
c=clock();for(i=0;i<50000000L;i++)xor128(); printf("xor128(): %4lu msec\n",clock()-c);
c=clock();for(i=0;i<50000000L;i++)xor128sse2();printf("xor128sse2():%4lu msec\n",clock()-c);}
疑似乱数2
■ このスレッドは過去ログ倉庫に格納されています
2008/01/14(月) 21:52:52
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- Youtube「大食い動画」規制、「収益化停止」の動き 動画配信者「死活問題になる」 [お断り★]
- 【速報】レベル5特別警報「氾濫」 秋田県 子吉川 最大級の警戒(19:48) [ぐれ★]
- 【世界の平均年収】日本の平均年収「519万円」は世界24位!?世界のリアルな給料事情とは [首都圏の虎★]
- 生活保護受ける小説家が執筆休止を宣言「印税の分だけ保護費が減り手元のお金が増えず…」批判が殺到し、炎上状態に [muffin★]
- 【マック】「マクドナルド」“390円”マックフライポテト×コカ・コーラ…等 全50組み合わせの「サンキューペア」開始 [七波羅探題★]
- あぼーん
- 鹿島アントラーズ実況2026☆53
- しみじみ実況スレ vs町田
- ◆◇◆ 横浜F・マリノス 実況 ◆◇◆
- 他サポ 2026/27-70
- 柏レイソルおにぎり実況vs FC東京☆☆☆
- サンフレッチェ広島 実況1
- 🏡👊😅👊🏡
- 【高市悲報】日本人、フィリピン人を使って同僚に漂白剤を飲ませてガソリンをかけバーナーで焼き重傷を負わせる [165981677]
- 【コント】高市劇場、新農水相が就任わずか1週間で公選法違反容疑 [354616885]
- 【高市悲報】PHP、重大な2件の脆弱性 23時に公開される修正パッチをあてるよう国が警告 [509448172]
- 【速報】武部新農水大臣「寄付を受けてました。誠にごめんなさい」 [834922174]
- 【高市悲報】VIVANT「お前らの情報は日本に伝えてある!西側諸国が大挙してお前らを潰しに来るぞ!」キリッ [165981677]