aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/vect/pr36648.cc
blob: 84b4efbff8f1651663e1fe620216f5e4fb029f7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* { dg-require-effective-target vect_float } */

struct vector
{
  vector() : x(0), y(0), z(0) { }
  float x,y,z;
};

struct Foo
{
  int dummy;
  /* Misaligned access.  */
  vector array_of_vectors[4];
};

Foo foo;

int main() { }

/* On older powerpc hardware (POWER7 and earlier), the default flag
   -mno-allow-movmisalign prevents vectorization.  On POWER8 and later,
   when vect_hw_misalign is true, vectorization occurs.  For other
   targets, ! vect_no_align is a sufficient test.  */

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { { { !  vect_no_align } && { ! powerpc*-*-* } } || { powerpc*-*-* && vect_hw_misalign } } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { { { ! vect_no_align } && { ! powerpc*-*-* } } || { powerpc*-*-* && vect_hw_misalign } } } } } */