1 /* { dg-do compile } */
2 
3 typedef short DCTELEM;
4 typedef unsigned char uint8_t;
5 
diff_pixels_c(DCTELEM * __restrict__ block,const uint8_t * s1,const uint8_t * s2,int stride)6 void diff_pixels_c(DCTELEM *__restrict__ block, const uint8_t *s1,
7 		   const uint8_t *s2, int stride)
8 {
9   int i;
10 
11   for(i=0;i<8;i++)
12     {
13       block[0] = s1[0] - s2[0];
14       block[1] = s1[1] - s2[1];
15       block[2] = s1[2] - s2[2];
16       block[3] = s1[3] - s2[3];
17       block[4] = s1[4] - s2[4];
18       block[5] = s1[5] - s2[5];
19       block[6] = s1[6] - s2[6];
20       block[7] = s1[7] - s2[7];
21       s1 += stride;
22       s2 += stride;
23       block += 8;
24     }
25 }
26 
27 /* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { target { vect_int && { vect_unpack && vect_hw_misalign } } } } } */
28