1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 #include <arm_sve.h>
5 
6 /* { dg-final { scan-assembler-not {\twhilel[et]\t} } } */
7 /* { dg-final { scan-assembler-not {\tpfalse\t} } } */
8 
9 void
test1(svbool_t * ptr)10 test1 (svbool_t *ptr)
11 {
12   *ptr = svwhilelt_b8_s32 (-svcnth (), svcnth ());
13 }
14 
15 /* { dg-final { scan-assembler {\tptrue\tp[0-7]\.b, all\n} } } */
16 
17 void
test2(svbool_t * ptr)18 test2 (svbool_t *ptr)
19 {
20   *ptr = svwhilelt_b16_s64 (0, svcntw () * 2);
21 }
22 
23 /* { dg-final { scan-assembler {\tptrue\tp[0-7]\.h, all\n} } } */
24 
25 void
test3(svbool_t * ptr)26 test3 (svbool_t *ptr)
27 {
28   *ptr = svwhilelt_b32_s32 (svcntd (), svcntw () + svcntd ());
29 }
30 
31 /* { dg-final { scan-assembler {\tptrue\tp[0-7]\.s, all\n} } } */
32