blob: 6b0faf1edefe49c3eb5751ba7090c30b5665cf97 [file] [log] [blame]
/* { dg-options "-O2 -ftree-vectorize" } */
#define TEST_OP(NAME, TYPE, OP) \
void \
NAME##_##TYPE (TYPE *restrict a, TYPE *restrict b, \
TYPE *restrict c, int n) \
{ \
for (int i = 0; i < n; ++i) \
a[i] = b[i] OP c[i]; \
}
#define TEST_TYPE(TYPE) \
TEST_OP (add, TYPE, +) \
TEST_OP (sub, TYPE, -) \
TEST_OP (mult, TYPE, *) \
TEST_TYPE (float)
TEST_TYPE (double)
/* { dg-final { scan-assembler-times {\tfadd\t} 2 } } */
/* { dg-final { scan-assembler-times {\tfsub\t} 2 } } */
/* { dg-final { scan-assembler-times {\tfmul\t} 2 } } */
/* { dg-final { scan-assembler-not {\tptrue\t} } } */