1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  #include <arm_sve.h>
       5  
       6  void
       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
      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
      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
      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} } } */