1 /* { dg-do compile } */
2 /* { dg-skip-if "" { ! { clmcpu } } } */
3 /* { dg-options "-mcpu=hs38 -O2 -Werror-implicit-function-declaration -mmpy-option=9" } */
5 #define STEST(name, rettype, op1type, op2type) \
6 rettype test_ ## name \
7 (op1type a, op2type b) \
9 return __builtin_arc_ ## name (a, b); \
12 typedef short v2hi
__attribute__ ((vector_size (4)));
13 typedef short v4hi
__attribute__ ((vector_size (8)));
14 typedef int v2si
__attribute__ ((vector_size (8)));
16 STEST (qmach
, long long, v4hi
, v4hi
)
17 STEST (qmachu
, long long, v4hi
, v4hi
)
18 STEST (qmpyh
, long long, v4hi
, v4hi
)
19 STEST (qmpyhu
, long long, v4hi
, v4hi
)
21 STEST (dmach
, int, v2hi
, v2hi
)
22 STEST (dmachu
, int, v2hi
, v2hi
)
23 STEST (dmpyh
, int, v2hi
, v2hi
)
24 STEST (dmpyhu
, int, v2hi
, v2hi
)
26 STEST (dmacwh
, long, v2si
, v2hi
)
27 STEST (dmacwhu
, long, v2si
, v2hi
)
29 STEST (vmac2h
, v2si
, v2hi
, v2hi
)
30 STEST (vmac2hu
, v2si
, v2hi
, v2hi
)
31 STEST (vmpy2h
, v2si
, v2hi
, v2hi
)
32 STEST (vmpy2hu
, v2si
, v2hi
, v2hi
)
34 STEST (vaddsub2h
, v2hi
, v2hi
, v2hi
)
35 STEST (vsubadd2h
, v2hi
, v2hi
, v2hi
)
36 STEST (vaddsub
, v2si
, v2si
, v2si
)
37 STEST (vsubadd
, v2si
, v2si
, v2si
)
38 STEST (vaddsub4h
, v4hi
, v4hi
, v4hi
)
39 STEST (vsubadd4h
, v4hi
, v4hi
, v4hi
)