1 /* { dg-do run { target { riscv_v && riscv_zvfh } } } */
2 /* { dg-additional-options "-std=c99 -fno-vect-cost-model --param=riscv-autovec-preference=fixed-vlmax -ffast-math" } */
4 #include "vadd-template.h"
10 #define RUN(TYPE,VAL) \
13 for (int i = 0; i < SZ; i++) \
18 vadd_##TYPE (a##TYPE, a##TYPE, b##TYPE, SZ); \
19 for (int i = 0; i < SZ; i++) \
20 assert (a##TYPE[i] == VAL);
22 #define RUN2(TYPE,VAL) \
24 for (int i = 0; i < SZ; i++) \
26 vadds_##TYPE (as##TYPE, as##TYPE, VAL, SZ); \
27 for (int i = 0; i < SZ; i++) \
28 assert (as##TYPE[i] == VAL);
30 #define RUN3(TYPE,VAL) \
32 for (int i = 0; i < SZ; i++) \
34 vaddi_##TYPE (ai##TYPE, ai##TYPE, SZ); \
35 for (int i = 0; i < SZ; i++) \
36 assert (ai##TYPE[i] == VAL + 15);
38 #define RUN3M(TYPE,VAL) \
40 for (int i = 0; i < SZ; i++) \
42 vaddim_##TYPE (aim##TYPE, aim##TYPE, SZ); \
43 for (int i = 0; i < SZ; i++) \
44 assert (aim##TYPE[i] == VAL - 16);