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