Listing 4.

void vecrev_sep (long *src, long *dst, long size)
  {
     unsigned long L0, L1, L2, L3;
     long i;
     for (i = 0; i < size/sizeof(long); i += 4)
     {
        /* loads: */
        L0 = src[i + 0];
        L1 = src[i + 1];
        L2 = src[i + 2];
        L3 = src[i + 3];

        /*  computation:  */
        L0 = byterev_long(L0);
        L1 = byterev_long(L1);
        L2 = byterev_long(L2);
        L3 = byterev_long(L3);

        /*  stores:  */
        dst[i + 0] = L0;
        dst[i + 1] = L1;
        dst[i + 2] = L2;
        dst[i + 3] = L3;
     }
  }