(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vmx/
ld.c
       1  #include "harness.h"
       2  
       3  static unsigned char svuc[16] __attribute__ ((aligned (16)));
       4  static signed char svsc[16] __attribute__ ((aligned (16)));
       5  static unsigned char svbc[16] __attribute__ ((aligned (16)));
       6  static unsigned short svus[8] __attribute__ ((aligned (16)));
       7  static signed short svss[8] __attribute__ ((aligned (16)));
       8  static unsigned short svbs[8] __attribute__ ((aligned (16)));
       9  static unsigned short svp[8] __attribute__ ((aligned (16)));
      10  static unsigned int svui[4] __attribute__ ((aligned (16)));
      11  static signed int svsi[4] __attribute__ ((aligned (16)));
      12  static unsigned int svbi[4] __attribute__ ((aligned (16)));
      13  static float svf[4] __attribute__ ((aligned (16)));
      14  
      15  static void init ()
      16  {
      17    unsigned int i;
      18    for (i = 0; i < 16; ++i)
      19      {
      20        svuc[i] = i;
      21        svsc[i] = i - 8;
      22        svbc[i] = (i % 2) ? 0xff : 0;
      23      }
      24    for (i = 0; i < 8; ++i)
      25      {
      26        svus[i] = i;
      27        svss[i] = i - 4;
      28        svbs[i] = (i % 2) ? 0xffff : 0;
      29        svp[i] = i;
      30      }
      31    for (i = 0; i < 4; ++i)
      32      {
      33        svui[i] = i;
      34        svsi[i] = i - 2;
      35        svbi[i] = (i % 2) ? 0xffffffff : 0;
      36        svf[i] = i * 1.0f;
      37      }
      38  }
      39  
      40  static void test ()
      41  {
      42    vector unsigned char evuc = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
      43    vector signed char evsc = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
      44    vector bool char evbc = {0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255};
      45    vector unsigned short evus = {0,1,2,3,4,5,6,7};
      46    vector signed short evss = {-4,-3,-2,-1,0,1,2,3};
      47    vector bool short evbs = {0,65535,0,65535,0,65535,0,65535};
      48    vector pixel evp = {0,1,2,3,4,5,6,7};
      49    vector unsigned int evui = {0,1,2,3};
      50    vector signed int evsi = {-2,-1,0,1};
      51    vector bool int evbi = {0,0xffffffff,0,0xffffffff};
      52    vector float evf = {0.0,1.0,2.0,3.0};
      53  
      54    vector unsigned char vuc;
      55    vector signed char vsc;
      56    vector bool char vbc;
      57    vector unsigned short vus;
      58    vector signed short vss;
      59    vector bool short vbs;
      60    vector pixel vp;
      61    vector unsigned int vui;
      62    vector signed int vsi;
      63    vector bool int vbi;
      64    vector float vf;
      65  
      66    init ();
      67  
      68    vuc = vec_ld (0, (vector unsigned char *)svuc);
      69    vsc = vec_ld (0, (vector signed char *)svsc);
      70    vbc = vec_ld (0, (vector bool char *)svbc);
      71    vus = vec_ld (0, (vector unsigned short *)svus);
      72    vss = vec_ld (0, (vector signed short *)svss);
      73    vbs = vec_ld (0, (vector bool short *)svbs);
      74    vp  = vec_ld (0, (vector pixel *)svp);
      75    vui = vec_ld (0, (vector unsigned int *)svui);
      76    vsi = vec_ld (0, (vector signed int *)svsi);
      77    vbi = vec_ld (0, (vector bool int *)svbi);
      78    vf  = vec_ld (0, (vector float *)svf);
      79  
      80    check (vec_all_eq (vuc, evuc), "vuc");
      81    check (vec_all_eq (vsc, evsc), "vsc");
      82    check (vec_all_eq (vbc, evbc), "vbc");
      83    check (vec_all_eq (vus, evus), "vus");
      84    check (vec_all_eq (vss, evss), "vss");
      85    check (vec_all_eq (vbs, evbs), "vbs");
      86    check (vec_all_eq (vp,  evp ), "vp" );
      87    check (vec_all_eq (vui, evui), "vui");
      88    check (vec_all_eq (vsi, evsi), "vsi");
      89    check (vec_all_eq (vbi, evbi), "vbi");
      90    check (vec_all_eq (vf,  evf ), "vf" );
      91  }