111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-additional-options "-O3" } */
|
|
3 /* { dg-require-effective-target vect_unpack } */
|
|
4
|
131
|
5 #include "tree-vect.h"
|
|
6
|
|
7 #if VECTOR_BITS > 512
|
|
8 #define N (VECTOR_BITS * 10 / 16)
|
|
9 #else
|
|
10 #define N 320
|
|
11 #endif
|
|
12
|
111
|
13 void foo(unsigned *p1, unsigned short *p2)
|
|
14 {
|
|
15 int n;
|
131
|
16 for (n = 0; n < N; n++)
|
111
|
17 p1[n] = p2[n * 2];
|
|
18 }
|
|
19
|
131
|
20 /* Disable for SVE because for long or variable-length vectors we don't
|
|
21 get an unrolled epilogue loop. */
|
|
22 /* { dg-final { scan-tree-dump "BB vectorization with gaps at the end of a load is not supported" "slp1" { target { ! aarch64_sve } } } } */
|