예제 #1
0
void static
avx2_test (void)
{
  union128i_d s1, s2, res;
  int res_ref[4];
  int i, j, sign = 1;
  int fail = 0;

  for (i = 0; i < 10; i++)
    {
      for (j = 0; j < 4; j++)
	{
	  s1.a[j] = j * i * sign;
	  s2.a[j] = (j + i) >> 2;
	  sign = -sign;
	}

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

      compute_psllvd128 (s1.a, s2.a, res_ref);

      fail += check_union128i_d (res, res_ref);
    }

  if (fail != 0)
    abort ();
}
예제 #2
0
파일: sse2-movdqa-2.c 프로젝트: 0day-ci/gcc
static void
TEST (void)
{
  union128i_d u;
  int e[4] __attribute__ ((aligned(16))) = {0};

  u.x = _mm_set_epi32 (1, 2, 3, 4);
   
  test ((__m128i *)e, u.x); 

  if (check_union128i_d (u, e))
    abort ();
}
static void
TEST (void)
{
  union128i_d u;
  int e[4]  = {0};

  u.x = _mm_set_epi32 (1, 2, 3, 4);
   
  test ((__m128i *)e, u.x); 

  if (check_union128i_d (u, e))
    abort ();
}
예제 #4
0
파일: sha1msg2-2.c 프로젝트: 0day-ci/gcc
static void
sha_test (void)
{
  union128i_d s1, s2, res;
  int res_ref[4];

  s1.x = _mm_set_epi32 (111, 222, 333, 444);
  s2.x = _mm_set_epi32 (555, 666, 777, 0);

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

  compute_sha1msg2 (s1.a, s2.a, res_ref);

  if (check_union128i_d (res, res_ref))
    abort ();
}
예제 #5
0
파일: sha1nexte-2.c 프로젝트: pjump/gcc
static void
sha_test (void)
{
    union128i_d s1, s2, res;
    int res_ref[4];

    s1.x = _mm_set_epi32 (111, 0, 0, 0);
    s2.x = _mm_set_epi32 (222, 333, 444, 555);

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

    compute_sha1nexte (s1.a, s2.a, res_ref);

    if (check_union128i_d (res, res_ref))
        abort ();
}
예제 #6
0
static void
TEST (void)
{
  union128i_d u;
  union128d s;
  int e[4] = {0};

  s.x = _mm_set_pd (2.78, 7777768.82);

  u.x = test (s.x);

  e[0] = (int)(s.a[0] + 0.5); 
  e[1] = (int)(s.a[1] + 0.5); 

  if (check_union128i_d (u, e))
    abort ();
}
예제 #7
0
파일: sse2-psubd-1.c 프로젝트: 0day-ci/gcc
static void
TEST (void)
{
  union128i_d u, s1, s2;
  int e[4];
  int i;
   
  s1.x = _mm_set_epi32 (30,90,-80,-40);
  s2.x = _mm_set_epi32 (76, -100, -34, -78);
  u.x = test (s1.x, s2.x); 
   
  for (i = 0; i < 4; i++)
     e[i] = s1.a[i] - s2.a[i];

  if (check_union128i_d (u, e))
    abort ();
}
예제 #8
0
void static
avx_test (void)
{
    int i;
    union256d s1;
    union128i_d u;
    int e [4];

    s1.x = _mm256_set_pd (2.78, 7777768.82, 23.67, 536.46);
    u.x = _mm256_cvtpd_epi32 (s1.x);

    for (i = 0; i < 4; i++)
        e[i] = (int)(s1.a[i] + 0.5);

    if (check_union128i_d (u, e))
        abort ();
}
예제 #9
0
static void
avx2_test (void)
{
  union128i_d src1, src2, dst;
  int dst_ref[4];
  int i;

  for (i = 0; i < NUM; i++)
    {
      init_pblendd128 (src1.a, src2.a, i);

      dst.x = _mm_blend_epi32 (src1.x, src2.x, MASK);
      calc_pblendd128 (src1.a, src2.a, MASK, dst_ref);

      if (check_union128i_d (dst, dst_ref))
	abort ();
    }
}
예제 #10
0
void static
avx2_test (void)
{
  int i;
  int m[4] = { mask_v (0), mask_v (1), mask_v (2), mask_v (3) };
  int s[4] = { 1, 2, 3, 4 };
  union128i_d u, mask;
  int e[4] = { 0 };

  mask.x = _mm_loadu_si128 ((__m128i *) m);
  u.x = _mm_maskload_epi32 (s, mask.x);

  for (i = 0; i < 4; i++)
    e[i] = m[i] ? s[i] : 0;

  if (check_union128i_d (u, e))
    abort ();
}
예제 #11
0
파일: sse2-psrad-1.c 프로젝트: 0day-ci/gcc
static void
TEST (void)
{
  union128i_d u, s;
  int e[4] = {0};
  int i;
 
  s.x = _mm_set_epi32 (1, -2, 3, 4);

  u.x = test (s.x);

  if (N < 32)
    for (i = 0; i < 4; i++)
      e[i] = s.a[i] >> N; 

  if (check_union128i_d (u, e))
    abort (); 
}
예제 #12
0
static void
TEST (void)
{
  union128 s;
  union128i_d u;
  int e[4] = {0};

  s.x = _mm_set_ps (123.321, 456.987, 33.56, 7765.321);

  u.x = test (s.x);

  e[0] = (int)s.a[0]; 
  e[1] = (int)s.a[1]; 
  e[2] = (int)s.a[2]; 
  e[3] = (int)s.a[3]; 

  if (check_union128i_d (u, e))
    abort ();
}
static void
TEST (void)
{
  union128i_d u, s1, s2;
  int e[4];
  int i;
   
  s1.x = _mm_set_epi32 (10,20,-80,-40);
  s2.x = _mm_set_epi32 (11, -34, -78, -39);
  u.x = test (s1.x, s2.x); 
   
  for (i = 0; i < 2; i++)
    {
      e[2*i] = s1.a[i];
      e[2*i+1] = s2.a[i];
    }

  if (check_union128i_d (u, e))
    abort ();
}
예제 #14
0
파일: sse2-psrad-2.c 프로젝트: 0day-ci/gcc
static void
TEST (void)
{
  union128i_d u, s;
  union128i_q c;
  int e[4] = {0};
  int i;
 
  s.x = _mm_set_epi32 (1, -2, 3, 4);
  c.x = _mm_set_epi64x (16, 29);

  u.x = test (s.x, c.x);

  if (c.a[0] < 32)
    for (i = 0; i < 4; i++)
      e[i] = s.a[i] >> c.a[0]; 

  if (check_union128i_d (u, e))
    abort (); 
}
예제 #15
0
파일: sse2-pslld-2.c 프로젝트: 0day-ci/gcc
static void
TEST (void)
{
  union128i_d u, s;
  union128i_q c;
  int e[4] = {0};
  int i;
 
  s.x = _mm_set_epi32 (2, -3, 0x7000, 0x9000);
  c.x = _mm_set_epi64x (12, 23);

  u.x = test (s.x, c.x);

  if (c.a[0] < 32)
    for (i = 0; i < 4; i++)
      e[i] = s.a[i] << c.a[0]; 

  if (check_union128i_d (u, e))
    abort (); 
}