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
11typedef __attribute__((vector_size(16))) signed char v16qi;
12typedef __attribute__((vector_size(16))) unsigned char uv16qi;
13
14typedef __attribute__((vector_size(16))) signed short v8hi;
15typedef __attribute__((vector_size(16))) unsigned short uv8hi;
16
17typedef __attribute__((vector_size(16))) signed int v4si;
18typedef __attribute__((vector_size(16))) unsigned int uv4si;
19
20typedef __attribute__((vector_size(16))) signed long long v2di;
21typedef __attribute__((vector_size(16))) unsigned long long uv2di;
22
23v16qi
24f (uv16qi a, uv16qi b)
25{
26  return a > b;
27}
28
29v8hi
30g (uv8hi a, uv8hi b)
31{
32  return a > b;
33}
34
35v4si
36h (uv4si a, uv4si b)
37{
38  return a > b;
39}
40
41v2di
42i (uv2di a, uv2di b)
43{
44  return a > b;
45}
46