comparison gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
13 unsigned char e; 13 unsigned char e;
14 unsigned char f; 14 unsigned char f;
15 unsigned char g; 15 unsigned char g;
16 unsigned char h; 16 unsigned char h;
17 } s; 17 } s;
18
19 volatile int y = 0;
20 18
21 __attribute__ ((noinline)) int 19 __attribute__ ((noinline)) int
22 main1 (s *arr) 20 main1 (s *arr)
23 { 21 {
24 int i; 22 int i;
53 || res[i].g != arr[i].b + arr[i].c) 51 || res[i].g != arr[i].b + arr[i].c)
54 abort (); 52 abort ();
55 } 53 }
56 54
57 ptr = arr; 55 ptr = arr;
58 /* Not vectorizable: gap in store. */ 56 /* Vectorized as a strided SLP pair. */
59 for (i = 0; i < N; i++) 57 for (i = 0; i < N; i++)
60 { 58 {
61 res[i].a = ptr->b; 59 res[i].a = ptr->b;
62 res[i].b = ptr->c; 60 res[i].b = ptr->c;
63 ptr++; 61 ptr++;
89 arr[i].d = i+34; 87 arr[i].d = i+34;
90 arr[i].e = i * 3 + 5; 88 arr[i].e = i * 3 + 5;
91 arr[i].f = i * 5; 89 arr[i].f = i * 5;
92 arr[i].g = i - 3; 90 arr[i].g = i - 3;
93 arr[i].h = 56; 91 arr[i].h = 56;
94 if (y) /* Avoid vectorization. */ 92 asm volatile ("" ::: "memory");
95 abort ();
96 } 93 }
97 94
98 main1 (arr); 95 main1 (arr);
99 96
100 return 0; 97 return 0;
101 } 98 }
102 99
103 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */ 100 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target vect_strided8 } } } */
104