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)17f (v16qi a, v16qi b) 18 { 19 return a > b; 20 } 21 22 v8hi g(v8hi a,v8hi b)23g (v8hi a, v8hi b) 24 { 25 return a > b; 26 } 27 28 v4si h(v4si a,v4si b)29h (v4si a, v4si b) 30 { 31 return a > b; 32 } 33 34 v2di i(v2di a,v2di b)35i (v2di a, v2di b) 36 { 37 return a > b; 38 } 39