RISC-V: testsuite: Remove redundant vector_hw and zvfh_hw.
[official-gcc.git] / gcc / testsuite / gcc.target / riscv / rvv / autovec / binop / vadd-zvfh-run.c
blob6c2d096e103bf5d9cc2c574dfb73ca49775a13fa
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"
6 #include <assert.h>
8 #define SZ 512
10 #define RUN(TYPE,VAL) \
11 TYPE a##TYPE[SZ]; \
12 TYPE b##TYPE[SZ]; \
13 for (int i = 0; i < SZ; i++) \
14 { \
15 a##TYPE[i] = 0; \
16 b##TYPE[i] = VAL; \
17 } \
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) \
23 TYPE as##TYPE[SZ]; \
24 for (int i = 0; i < SZ; i++) \
25 as##TYPE[i] = 0; \
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) \
31 TYPE ai##TYPE[SZ]; \
32 for (int i = 0; i < SZ; i++) \
33 ai##TYPE[i] = VAL; \
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) \
39 TYPE aim##TYPE[SZ]; \
40 for (int i = 0; i < SZ; i++) \
41 aim##TYPE[i] = VAL; \
42 vaddim_##TYPE (aim##TYPE, aim##TYPE, SZ); \
43 for (int i = 0; i < SZ; i++) \
44 assert (aim##TYPE[i] == VAL - 16);
46 #define RUN_ALL() \
47 RUN(_Float16, 4) \
48 RUN2(_Float16, 10) \
49 RUN3M(_Float16, 17) \
51 int main ()
53 RUN_ALL()