1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 #include <arm_sve.h>
5 
6 /* { dg-final { scan-assembler-not {\twhilele\t} } } */
7 /* { dg-final { scan-assembler-not {\twhilelt\t} } } */
8 /* { dg-final { scan-assembler-not {\tptrue\t} } } */
9 
10 void
test1(svbool_t * ptr)11 test1 (svbool_t *ptr)
12 {
13   *ptr = svwhilele_b32_s32 (-8, -9);
14 }
15 
16 void
test2(svbool_t * ptr)17 test2 (svbool_t *ptr)
18 {
19   *ptr = svwhilele_b16_s64 (50, -1);
20 }
21 
22 void
test3(svbool_t * ptr)23 test3 (svbool_t *ptr)
24 {
25   *ptr = svwhilele_b16_s32 (0x7ffffffb, 0x80000000);
26 }
27 
28 void
test4(svbool_t * ptr)29 test4 (svbool_t *ptr)
30 {
31   *ptr = svwhilele_b8_s64 (svcntb (), 15);
32 }
33 
34 void
test5(svbool_t * ptr)35 test5 (svbool_t *ptr)
36 {
37   *ptr = svwhilele_b8_s64 (svcntb (), svcntw ());
38 }
39 
40 /* { dg-final { scan-assembler-times {\tpfalse\tp[0-7]\.b\n} 5 } } */
41