Exemple #1
0
static void
f16c_test (void)
{
  union256 val;
  union128i_w res; 
  short exp[8];

  val.a[0] = 1;
  val.a[1] = 2;
  val.a[2] = 4;
  val.a[3] = 8;
  val.a[4] = -1;
  val.a[5] = -2;
  val.a[6] = -4;
  val.a[7] = -8;

  exp[0] = 0x3c00;
  exp[1] = 0x4000;
  exp[2] = 0x4400;
  exp[3] = 0x4800;
  exp[4] = 0xbc00;
  exp[5] = 0xc000;
  exp[6] = 0xc400;
  exp[7] = 0xc800;

  res.x = _mm256_cvtps_ph (val.x, 0);

  if (check_union128i_w (res, exp))
    abort ();
}
Exemple #2
0
static void
TEST (void)
{
  union128i_w u, s1, s2;
  short e[8];
  int i;
   
  s1.x = _mm_set_epi16 (1,2,3,4,5,6,7,8);
  s2.x = _mm_set_epi16 (8,7,6,5,4,3,2,1);
  u.x = test (s1.x, s2.x);

  for (i=0; i<8; i++)
    e[i] = s1.a[i]>s2.a[i]?s1.a[i]:s2.a[i]; 

  if (check_union128i_w (u, e))
    abort ();
}
Exemple #3
0
static void
TEST (void)
{
  union128i_w u, s1, s2;
  short e[8];
  int i;
   
  s1.x = _mm_set_epi16 (10,20,30,90,-80,-40,-100,-15);
  s2.x = _mm_set_epi16 (11, 98, 76, -100, -34, -78, -39, 14);
  u.x = test (s1.x, s2.x); 
   
  for (i = 0; i < 8; i++)
     e[i] = s1.a[i] + s2.a[i];

  if (check_union128i_w (u, e))
    abort ();
}
Exemple #4
0
static void
TEST (void)
{
  union128i_w u, s;
  union128i_q c;
  short e[8] = {0};
  int i;
 
  s.x = _mm_set_epi16 (1, -2, 3, 4, 5, 6, -0x7000, 0x9000);
  c.x = _mm_set_epi64x (12, 13);

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

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

  if (check_union128i_w (u, e))
    abort (); 
}
static void
TEST (void)
{
  union128i_w u, s1, s2;
  short e[8];
  int i, tmp;
   
  s1.x = _mm_set_epi16 (10,2067,-3033,90,80,40,-1000,15);
  s2.x = _mm_set_epi16 (11, 9834, 7444, -10222, 34, -7833, 39, 14);
  u.x = test (s1.x, s2.x); 
   
  for (i = 0; i < 8; i++)
    {
      tmp = s1.a[i] * s2.a[i];
    
      e[i] = tmp;
    }

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