| /* { dg-do compile } */ |
| /* { dg-skip-if "" { ! { clmcpu } } } */ |
| /* { dg-options "-mcpu=hs38 -O2 -Werror-implicit-function-declaration -mmpy-option=9" } */ |
| |
| #define STEST(name, rettype, op1type, op2type) \ |
| rettype test_ ## name \ |
| (op1type a, op2type b) \ |
| { \ |
| return __builtin_arc_ ## name (a, b); \ |
| } |
| |
| typedef short v2hi __attribute__ ((vector_size (4))); |
| typedef short v4hi __attribute__ ((vector_size (8))); |
| typedef int v2si __attribute__ ((vector_size (8))); |
| |
| STEST (qmach, long long, v4hi, v4hi) |
| STEST (qmachu, long long, v4hi, v4hi) |
| STEST (qmpyh, long long, v4hi, v4hi) |
| STEST (qmpyhu, long long, v4hi, v4hi) |
| |
| STEST (dmach, int, v2hi, v2hi) |
| STEST (dmachu, int, v2hi, v2hi) |
| STEST (dmpyh, int, v2hi, v2hi) |
| STEST (dmpyhu, int, v2hi, v2hi) |
| |
| STEST (dmacwh, long, v2si, v2hi) |
| STEST (dmacwhu, long, v2si, v2hi) |
| |
| STEST (vmac2h, v2si, v2hi, v2hi) |
| STEST (vmac2hu, v2si, v2hi, v2hi) |
| STEST (vmpy2h, v2si, v2hi, v2hi) |
| STEST (vmpy2hu, v2si, v2hi, v2hi) |
| |
| STEST (vaddsub2h, v2hi, v2hi, v2hi) |
| STEST (vsubadd2h, v2hi, v2hi, v2hi) |
| STEST (vaddsub, v2si, v2si, v2si) |
| STEST (vsubadd, v2si, v2si, v2si) |
| STEST (vaddsub4h, v4hi, v4hi, v4hi) |
| STEST (vsubadd4h, v4hi, v4hi, v4hi) |