blob: b348526b62f03d06abb42da264a7e74fca2b0b83 [file] [log] [blame]
/* { dg-do compile } */
/* Disable for vectorization using partial vectors since it would have only
one iteration left, consequently BB vectorization won't happen. */
/* { dg-additional-options "-O3 --param=vect-partial-vector-usage=0" } */
/* { dg-require-effective-target vect_unpack } */
#include "tree-vect.h"
#if VECTOR_BITS > 512
#define N (VECTOR_BITS * 10 / 16)
#else
#define N 320
#endif
void foo(unsigned *p1, unsigned short *p2)
{
int n;
for (n = 0; n < N; n++)
p1[n] = p2[n * 2];
}
/* Disable for SVE because for long or variable-length vectors we don't
get an unrolled epilogue loop. Also disable for AArch64 Advanced SIMD,
because there we can vectorize the epilogue using mixed vector sizes.
Likewise for AMD GCN. */
/* { dg-final { scan-tree-dump "BB vectorization with gaps at the end of a load is not supported" "slp1" { target { { ! aarch64*-*-* } && { ! amdgcn*-*-* } } } } } */