1/* { dg-require-effective-target vect_int } */ 2 3#include <stdarg.h> 4#include "tree-vect.h" 5 6#define N 16 7 8unsigned int out[N]; 9unsigned int in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; 10 11int i; 12__attribute__ ((noinline)) int 13main1 () 14{ 15 unsigned int *pin = &in[0]; 16 unsigned int *pout = &out[0]; 17 18 *pout++ = *pin++; 19 *pout++ = *pin++; 20 *pout++ = *pin++; 21 *pout++ = *pin++; 22 23 if (i) 24 __asm__ volatile ("" : : : "memory"); 25 26 /* Check results. */ 27 if (out[0] != in[0] 28 || out[1] != in[1] 29 || out[2] != in[2] 30 || out[3] != in[3]) 31 abort(); 32 33 return 0; 34} 35 36int main (void) 37{ 38 check_vect (); 39 40 main1 (); 41 42 return 0; 43} 44 45/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */ 46/* { dg-final { cleanup-tree-dump "slp2" } } */ 47 48