Esempio n. 1
0
static void
avx2_test (void)
{
  union256i_w s1, s2, res;
  unsigned short res_ref[16];
  int i, j;
  int fail = 0;

  for (i = 0; i < 10; i++)
    {
      for (j = 0; j < 16; j++)
	{
	  s1.a[j] = j * i;
	  s2.a[j] = i + 2000;
	}

      res.x = _mm256_min_epu16 (s1.x, s2.x);

      compute_pminuw256 ((unsigned short *) s1.a,
			 (unsigned short *) s2.a, (unsigned short *) res_ref);

      fail += check_union256i_w (res, res_ref);
    }

  if (fail != 0)
    abort ();
}
Esempio n. 2
0
__m256i test_mm256_min_epu16(__m256i a, __m256i b) {
  // CHECK: @llvm.x86.avx2.pminu.w
  return _mm256_min_epu16(a, b);
}
Esempio n. 3
0
__m256i test_mm256_min_epu16(__m256i a, __m256i b) {
  // CHECK-LABEL: test_mm256_min_epu16
  // CHECK:       [[CMP:%.*]] = icmp ult <16 x i16> [[X:%.*]], [[Y:%.*]]
  // CHECK-NEXT:  select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
  return _mm256_min_epu16(a, b);
}
static FORCE_INLINE __m256i mm256_min_epu(const __m256i &a, const __m256i &b) {
    if (sizeof(PixelType) == 1)
        return _mm256_min_epu8(a, b);
    else
        return _mm256_min_epu16(a, b);
}