(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vmx/
lde.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 short svus[8] __attribute__ ((aligned (16)));
       6  static signed short svss[8] __attribute__ ((aligned (16)));
       7  static unsigned int svui[4] __attribute__ ((aligned (16)));
       8  static signed int svsi[4] __attribute__ ((aligned (16)));
       9  static float svf[4] __attribute__ ((aligned (16)));
      10  
      11  static void init ()
      12  {
      13    unsigned int i;
      14    for (i = 0; i < 16; ++i)
      15      {
      16        svuc[i] = i;
      17        svsc[i] = i - 8;
      18      }
      19    for (i = 0; i < 8; ++i)
      20      {
      21        svus[i] = i;
      22        svss[i] = i - 4;
      23      }
      24    for (i = 0; i < 4; ++i)
      25      {
      26        svui[i] = i;
      27        svsi[i] = i - 2;
      28        svf[i] = i * 1.0f;
      29      }
      30  }
      31  
      32  static void test ()
      33  {
      34    vector unsigned char vuc;
      35    vector signed char vsc;
      36    vector unsigned short vus;
      37    vector signed short vss;
      38    vector unsigned int vui;
      39    vector signed int vsi;
      40    vector float vf;
      41  
      42    init ();
      43  
      44    vuc = vec_lde (9*1, (unsigned char *)svuc);
      45    vsc = vec_lde (14*1, (signed char *)svsc);
      46    vus = vec_lde (7*2, (unsigned short *)svus);
      47    vss = vec_lde (1*2, (signed short *)svss);
      48    vui = vec_lde (3*4, (unsigned int *)svui);
      49    vsi = vec_lde (2*4, (signed int *)svsi);
      50    vf  = vec_lde (0*4, (float *)svf);
      51  
      52    check (vec_extract (vuc, 9) == 9, "vuc");
      53    check (vec_extract (vsc, 14) == 6, "vsc");
      54    check (vec_extract (vus, 7) == 7, "vus");
      55    check (vec_extract (vss, 1) == -3, "vss");
      56    check (vec_extract (vui, 3) == 3, "vui");
      57    check (vec_extract (vsi, 2) == 0, "vsi");
      58    check (vec_extract (vf,  0) == 0.0, "vf");
      59  }