S/390: Vector base support - testcases
[gcc.git] / gcc / testsuite / gcc.target / s390 / vector / vec-cmp-1.c
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
24 f (uv16qi a, uv16qi b)
25 {
26 return a > b;
27 }
28
29 v8hi
30 g (uv8hi a, uv8hi b)
31 {
32 return a > b;
33 }
34
35 v4si
36 h (uv4si a, uv4si b)
37 {
38 return a > b;
39 }
40
41 v2di
42 i (uv2di a, uv2di b)
43 {
44 return a > b;
45 }