/* { dg-do compile { target { powerpc*-*-* } } } */
/* { dg-skip-if "" { powerpc*-*-darwin* } } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2 -ftree-vectorize -fvect-cost-model=dynamic -fno-unroll-loops -fno-unroll-all-loops" } */

#ifndef TYPE
#define TYPE long long
#endif

#ifndef SIGN_TYPE
#define SIGN_TYPE signed TYPE
#endif

#ifndef UNS_TYPE
#define UNS_TYPE unsigned TYPE
#endif

typedef vector SIGN_TYPE v_sign;
typedef vector UNS_TYPE  v_uns;

v_sign sign_add (v_sign a, v_sign b)
{
  return a + b;
}

v_sign sign_sub (v_sign a, v_sign b)
{
  return a - b;
}

v_sign sign_shift_left (v_sign a, v_sign b)
{
  return a << b;
}

v_sign sign_shift_right (v_sign a, v_sign b)
{
  return a >> b;
}

v_uns uns_add (v_uns a, v_uns b)
{
  return a + b;
}

v_uns uns_sub (v_uns a, v_uns b)
{
  return a - b;
}

v_uns uns_shift_left (v_uns a, v_uns b)
{
  return a << b;
}

v_uns uns_shift_right (v_uns a, v_uns b)
{
  return a >> b;
}

/* { dg-final { scan-assembler-times "vaddudm" 2 } } */
/* { dg-final { scan-assembler-times "vsubudm" 2 } } */
/* { dg-final { scan-assembler-times "vsld"    2 } } */
/* { dg-final { scan-assembler-times "vsrad"   1 } } */
/* { dg-final { scan-assembler-times "vsrd"    1 } } */
