コード例 #1
0
static void
avx512f_test (void)
{
  __m512i a
    = _mm512_set_epi32 (1, 17, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16);
  __m512i b
    = _mm512_set_epi32 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16);
  __mmask16 c = _mm512_cmpgt_epu32_mask (a, b);
  if (_mm512_mask2int (c) != 0xc000)
    __builtin_abort ();
}
コード例 #2
0
ファイル: ising.cpp プロジェクト: ezeferrero/rfim_phi
// Philox RNG for Xeon Phi cards
__forceinline
void philox2x32_mic(uint64_t counter, uint32_t key, __m512i& rnd1, __m512i& rnd2)
{
#ifdef __MIC__
  const __m512i m = _mm512_set1_epi32(0xD256D193);
  const __m512i w = _mm512_set1_epi32(0x9E3779B9);
  const __m512i incr = _mm512_set_epi32(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);

  __m512i r = _mm512_set1_epi32(counter & 0xFFFFFFFF);
  __m512i l = _mm512_set1_epi32(counter >> 32);
  __m512i keyV = _mm512_set1_epi32(key);
  keyV = _mm512_add_epi32(keyV, incr);
  
  #pragma unroll(10)
  for(int i = 0; i < 10; ++i)
  {
    __m512i l_old = l;
    l = _mm512_mullo_epi32(r, m);
    r = _mm512_xor_epi32(_mm512_xor_epi32(_mm512_mulhi_epu32(r, m), keyV), l_old);
    keyV = _mm512_add_epi32(keyV, w);
  }
  rnd1 = r;
  rnd2 = l;
#endif
}
コード例 #3
0
int main() {
  __m512i x =
      _mm512_set_epi32(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
  printf("max %u \n", avx512maxbitas32int(x));
}
コード例 #4
0
ファイル: avx512f-set-v16si-3.c プロジェクト: 0day-ci/gcc
foo (int x)
{
  return _mm512_set_epi32 (x, x, x, x, x, x, x, x,
			   x, x, x, x, x, x, x, x);
}