zeros = vec_splat_u16(0);
int pix_norm1_altivec(uint8_t *pix, int line_size){    int s, i;    vector unsigned char *tv, zero;    vector unsigned char pixv;    vector unsigned short pixlv, pixhv, zeros;    vector unsigned int sv;    vector signed int sum;    vector unsigned char perm_stoint_h = (vector unsigned char)        (16, 16, 0, 1, 16, 16, 2, 3, 16, 16, 4, 5, 16, 16, 6, 7);        vector unsigned char perm_stoint_l = (vector unsigned char)        (16, 16, 8, 9, 16, 16, 10, 11, 16, 16, 12, 13, 16, 16, 14, 15);            zero = vec_splat_u8(0);    zeros = vec_splat_u16(0);    sv = vec_splat_u32(0);        s = 0;    for (i = 0; i < 16; i++) {        /* Read in the potentially unaligned pixels */        tv = (vector unsigned char *) pix;        pixv = vec_perm(tv[0], tv[1], vec_lvsl(0, pix));        /* Split them into two vectors of shorts */        pixhv = (vector unsigned short) vec_mergeh(zero, pixv);        pixlv = (vector unsigned short) vec_mergel(zero, pixv);                /* Square the values and add them to our sum */        sv = vec_msum(pixhv, pixhv, sv);        sv = vec_msum(pixlv, pixlv, sv);        pix += line_size;    }    /* Sum up the four partial sums, and put the result into s */    sum = vec_sums((vector signed int) sv, (vector signed int) zero);    sum = vec_splat(sum, 3);    vec_ste(sum, 0, &s);    return s;}