1 /* { dg-do run } */
2 /* { dg-require-effective-target s390_vxe2 } */
3 /* { dg-options "-O3 -mzarch -march=arch13 -mzvector --save-temps" } */
4 
5 #include <vecintrin.h>
6 
7 void __attribute__((noinline,noclone))
vstrs1()8 vstrs1 ()
9 {
10   int cc;
11   vector signed char haystack = { 'h', 'o', 'l', 'a', 'h', 'i', 'h', 'o',
12 				  'h', 'i', 'h', 'o' };
13   vector signed char needle = { 'h', 'i', 'h', 'o' };
14   vector unsigned char length = { 0 };
15   length[7] = 4;
16 
17   vector unsigned char result = vec_search_string_cc (haystack, needle,
18 						      length, &cc);
19 
20   if (result[7] != 4)
21     __builtin_abort ();
22 
23   /* CC2 indicates a full match.  */
24   if (cc != 2)
25     __builtin_abort ();
26 }
27 
28 int
main()29 main ()
30 {
31   vstrs1 ();
32 
33   return 0;
34 }
35 
36 /* { dg-final { scan-assembler-times "vstrsb\t" 1 } } */
37