1/* Check that the proper signed 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 "vchb" 1 } } */
7/* { dg-final { scan-assembler-times "vchh" 1 } } */
8/* { dg-final { scan-assembler-times "vchf" 1 } } */
9/* { dg-final { scan-assembler-times "vchg" 1 } } */
10
11typedef __attribute__((vector_size(16))) signed char v16qi;
12typedef __attribute__((vector_size(16))) signed short v8hi;
13typedef __attribute__((vector_size(16))) signed int v4si;
14typedef __attribute__((vector_size(16))) signed long long v2di;
15
16v16qi
17f (v16qi a, v16qi b)
18{
19  return a > b;
20}
21
22v8hi
23g (v8hi a, v8hi b)
24{
25  return a > b;
26}
27
28v4si
29h (v4si a, v4si b)
30{
31  return a > b;
32}
33
34v2di
35i (v2di a, v2di b)
36{
37  return a > b;
38}
39