1 /* { dg-require-effective-target vect_int } */
2 /* { dg-require-effective-target vect_shift } */
9 /* Modified rgb to rgb conversion from FFmpeg. */
10 __attribute__ ((noinline
)) void
11 foo (unsigned char *src
, unsigned char *dst
)
13 unsigned char *s
= src
;
17 for (i
= 0; i
< N
/4; i
++)
23 *d
= ((b
>>3) | ((g
&0xFC)<<3) | ((r
&0xF8)<<8) | (a
>>5));
29 for (i
= 0; i
< N
/4; i
++)
35 if (*d
!= ((b
>>3) | ((g
&0xFC)<<3) | ((r
&0xF8)<<8) | (a
>>5)))
44 unsigned char in
[N
], out
[N
];
48 for (i
= 0; i
< N
; i
++)
52 __asm__
volatile ("");
60 /* Final value stays in int, so no over-widening is detected at the moment. */
61 /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 0 "vect" } } */
62 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */