altivec-use.c   [plain text]


/* { dg-options "-faltivec -fdump-tree-ivu" } */

vector int vi = (vector int) (1,2,3,4);
int gi = 0;

/* Does not use vector operations.  */
int one ()
{
  return 1;
}

/* Uses vector operations.  */
int two ()
{
  vector int v2 = (vector int) (5,6,7,8);
  return one ();
}

/* Uses vector operations.  */
void three (vector int v1)
{
  vi = v1;
}

/* Uses vector operations.  */
void four (vector int v1)
{
  int gi;
  gi = 1;
}

/* Uses vector operations.  */
void five ()
{
  four ((vector int) (1,2,1,2));
}

/* Uses vector operations.  */
void six ()
{
  four (vi);
}

/* { dg-final { scan-tree-dump-times "one does not use vector operations." 1 "ivu" } } */
/* { dg-final { scan-tree-dump-times "two uses vector operations." 1 "ivu" } } */
/* { dg-final { scan-tree-dump-times "three uses vector operations." 1 "ivu" } } */
/* { dg-final { scan-tree-dump-times "four uses vector operations." 1 "ivu" } } */
/* { dg-final { scan-tree-dump-times "five uses vector operations." 1 "ivu" } } */
/* { dg-final { scan-tree-dump-times "six uses vector operations." 1 "ivu" } } */