Mercurial > hg > CbC > CbC_gcc
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 |