【トリップ検索】MERIKEN's Tripcode Finder@scat SOFTWARE
【トリップ検索】MERIKEN's Tripcode Finder@sc - 暇つぶし2ch355:◆YSRKENzzasTCaYr
14/05/17 21:42:09.88 HlllZZ0dQ
>>342
もちろんそうなんですが、SIMDで4つ同時に処理しているので、
「_mm_movemask_epi8が0だった」=「4つともアウト」なんですよ……

_mm_cmpeq_epi32を二周するのはアレっぽいので、次のように書き換えて比較ベンチしました。
  MakeTrip_SSE2(Key_SSE2, Trip_SSE2);
  for(uint64_t n = 0; n < PatternSize; ++n){
    isMatch = true;
    isMatch_SSE2 = Increment_SSE2[7];
    for(uint k = 0; k < TripArraySize; ++k){
      isMatch_SSE2 = _mm_and_si128(isMatch_SSE2, _mm_cmpeq_epi32(DecodedPattern_SSE2[n][k], _mm_and_si128(Trip_SSE2[k], PatternMask_SSE2[n][k])));
      if(_mm_movemask_epi8(isMatch_SSE2) == 0x0){
        isMatch = false;
        break;
      }
    }
    if(isMatch == true){
      _mm_store_si128((__m128i*)isMatch_, isMatch_SSE2);
      for(uint k = 0; k < SIMD_SSE2; ++k){
        if(isMatch_[k] != 0){
          Result[t] += PutTrip_SSE2(Key_SSE2, Trip_SSE2, k) + "\n";
        }
      }
    }
  }
結果、はっきりとした性能差は出ませんでした。まあ、ヒットすること前提の場合、こちらの方がいいのかもしれません。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch