1 /* Check that the proper unsigned compare instructions are being generated.  */
2 
3 /* { dg-do compile { target { s390*-*-* } } } */
4 /* { dg-options "-O3 -mzarch -march=z13" } */
5 
6 /* { dg-final { scan-assembler-times "vchlb" 1 } } */
7 /* { dg-final { scan-assembler-times "vchlh" 1 } } */
8 /* { dg-final { scan-assembler-times "vchlf" 1 } } */
9 /* { dg-final { scan-assembler-times "vchlg" 1 } } */
10 
11 typedef __attribute__((vector_size(16))) signed char v16qi;
12 typedef __attribute__((vector_size(16))) unsigned char uv16qi;
13 
14 typedef __attribute__((vector_size(16))) signed short v8hi;
15 typedef __attribute__((vector_size(16))) unsigned short uv8hi;
16 
17 typedef __attribute__((vector_size(16))) signed int v4si;
18 typedef __attribute__((vector_size(16))) unsigned int uv4si;
19 
20 typedef __attribute__((vector_size(16))) signed long long v2di;
21 typedef __attribute__((vector_size(16))) unsigned long long uv2di;
22 
23 v16qi
f(uv16qi a,uv16qi b)24 f (uv16qi a, uv16qi b)
25 {
26   return a > b;
27 }
28 
29 v8hi
g(uv8hi a,uv8hi b)30 g (uv8hi a, uv8hi b)
31 {
32   return a > b;
33 }
34 
35 v4si
h(uv4si a,uv4si b)36 h (uv4si a, uv4si b)
37 {
38   return a > b;
39 }
40 
41 v2di
i(uv2di a,uv2di b)42 i (uv2di a, uv2di b)
43 {
44   return a > b;
45 }
46