/* { dg-additional-options "-fdump-tree-optimized" } */

#include "tree-vect.h"

#define N (VECTOR_BITS * 11 / 64 + 3)

#define add(A, B) ((A) + (B))
#define sub(A, B) ((A) - (B))
#define mul(A, B) ((A) * (B))
#define div(A, B) ((A) / (B))

#define DEF(OP)							\
  void __attribute__ ((noipa))					\
  f_##OP (double *restrict a, double *restrict b, double x)	\
  {								\
    for (int i = 0; i < N; ++i)					\
      a[i] = b[i] < 100 ? OP (b[i], x) : b[i];			\
  }

#define TEST(OP)					\
  {							\
    f_##OP (a, b, 10);					\
    for (int i = 0; i < N; ++i)				\
      {							\
	int bval = (i % 17) * 10;			\
	int truev = OP (bval, 10);			\
	if (a[i] != (bval < 100 ? truev : bval))	\
	__builtin_abort ();				\
	asm volatile ("" ::: "memory");			\
      }							\
  }

#define FOR_EACH_OP(T)				\
  T (add)					\
  T (sub)					\
  T (mul)					\
  T (div)

FOR_EACH_OP (DEF)

int
main (void)
{
  double a[N], b[N];
  for (int i = 0; i < N; ++i)
    {
      b[i] = (i % 17) * 10;
      asm volatile ("" ::: "memory");
    }
  FOR_EACH_OP (TEST)
  return 0;
}

/* { dg-final { scan-tree-dump { = \.COND_ADD} "optimized" { target vect_double_cond_arith } } } */
/* { dg-final { scan-tree-dump { = \.COND_SUB} "optimized" { target vect_double_cond_arith } } } */
/* { dg-final { scan-tree-dump { = \.COND_MUL} "optimized" { target vect_double_cond_arith } } } */
/* { dg-final { scan-tree-dump { = \.COND_RDIV} "optimized" { target vect_double_cond_arith } } } */
/* { dg-final { scan-tree-dump-not {VEC_COND_EXPR} "optimized" { target vect_double_cond_arith } } } */
