#include "harness.h"

static void test()
{
  /* Input vectors.  */
  vector unsigned char vuc = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  vector signed char vsc = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
  vector unsigned short vus = {0,1,2,3,4,5,6,7};
  vector signed short vss = {-4,-3,-2,-1,0,1,2,3};
  vector unsigned int vui = {0,1,2,3};
  vector signed int vsi = {-2,-1,0,1};
  vector float vf = {-2.0,-1.0,0.0,1.0};

  /* Result vectors.  */
  vector unsigned char vucr;
  vector signed char vscr;
  vector unsigned short vusr;
  vector signed short vssr;
  vector unsigned int vuir;
  vector signed int vsir;
  vector float vfr;

  /* Expected result vectors.  */
  vector unsigned char vucer = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
  vector signed char vscer = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  vector unsigned short vuser = {7,7,7,7,7,7,7,7};
  vector signed short vsser = {-4,-4,-4,-4,-4,-4,-4,-4};
  vector unsigned int vuier = {2,2,2,2};
  vector signed int vsier = {1,1,1,1};
  vector float vfer = {-1.0,-1.0,-1.0,-1.0};

  vucr = vec_splat (vuc, 1);
  vscr = vec_splat (vsc, 8);
  vusr = vec_splat (vus, 7);
  vssr = vec_splat (vss, 0);
  vuir = vec_splat (vui, 2);
  vsir = vec_splat (vsi, 3);
  vfr  = vec_splat (vf,  1);

  check (vec_all_eq (vucr, vucer), "vuc");
  check (vec_all_eq (vscr, vscer), "vsc");
  check (vec_all_eq (vusr, vuser), "vus");
  check (vec_all_eq (vssr, vsser), "vss");
  check (vec_all_eq (vuir, vuier), "vui");
  check (vec_all_eq (vsir, vsier), "vsi");
  check (vec_all_eq (vfr,  vfer ), "vf");
}
