1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 #include <arm_sve.h>
5 
6 void
test1(svint16_t x,svint16_t y,int * any,svbool_t * ptr)7 test1 (svint16_t x, svint16_t y, int *any, svbool_t *ptr)
8 {
9   svbool_t res = svmatch (svptrue_b8 (), x, y);
10   *any = svptest_any (svptrue_b16 (), res);
11   *ptr = res;
12 }
13 
14 int
test2(svint16_t x,svint16_t y,int * any)15 test2 (svint16_t x, svint16_t y, int *any)
16 {
17   svbool_t res = svmatch (svptrue_b8 (), x, y);
18   return svptest_any (svptrue_b16 (), res);
19 }
20 
21 void
test3(svint16_t x,svint16_t y,int * any,svbool_t * ptr)22 test3 (svint16_t x, svint16_t y, int *any, svbool_t *ptr)
23 {
24   svbool_t res = svmatch (svptrue_b16 (), x, y);
25   *any = svptest_any (svptrue_b16 (), res);
26   *ptr = res;
27 }
28 
29 int
test4(svint16_t x,svint16_t y,int * any)30 test4 (svint16_t x, svint16_t y, int *any)
31 {
32   svbool_t res = svmatch (svptrue_b16 (), x, y);
33   return svptest_any (svptrue_b16 (), res);
34 }
35 
36 /* { dg-final { scan-assembler-times {\tmatch\t} 4 } } */
37 /* { dg-final { scan-assembler-not {\tptest\t} } } */
38