1 /* { dg-require-effective-target vect_int } */ 2 3 #include <stdarg.h> 4 #include "tree-vect.h" 5 6 #define N 128 7 8 __attribute__ ((noinline)) int main1()9main1 () 10 { 11 int i; 12 unsigned short sout[N*8]; 13 unsigned int iout[N*8]; 14 unsigned char cout[N*8]; 15 16 for (i = 0; i < N; i++) 17 { 18 sout[i*4] = 8; 19 sout[i*4 + 1] = 18; 20 sout[i*4 + 2] = 28; 21 sout[i*4 + 3] = 38; 22 23 iout[i*4] = 8; 24 iout[i*4 + 1] = 18; 25 iout[i*4 + 2] = 28; 26 iout[i*4 + 3] = 38; 27 28 cout[i*4] = 1; 29 cout[i*4 + 1] = 2; 30 cout[i*4 + 2] = 3; 31 cout[i*4 + 3] = 4; 32 } 33 34 /* check results: */ 35 for (i = 0; i < N; i++) 36 { 37 if (sout[i*4] != 8 38 || sout[i*4 + 1] != 18 39 || sout[i*4 + 2] != 28 40 || sout[i*4 + 3] != 38 41 || iout[i*4] != 8 42 || iout[i*4 + 1] != 18 43 || iout[i*4 + 2] != 28 44 || iout[i*4 + 3] != 38 45 || cout[i*4] != 1 46 || cout[i*4 + 1] != 2 47 || cout[i*4 + 2] != 3 48 || cout[i*4 + 3] != 4) 49 abort (); 50 } 51 52 return 0; 53 } 54 main(void)55int main (void) 56 { 57 check_vect (); 58 59 main1 (); 60 61 return 0; 62 } 63 64 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ 65 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" } } */ 66 67