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 f(uv16qi a,uv16qi b)24f (uv16qi a, uv16qi b) 25 { 26 return a > b; 27 } 28 29 v8hi g(uv8hi a,uv8hi b)30g (uv8hi a, uv8hi b) 31 { 32 return a > b; 33 } 34 35 v4si h(uv4si a,uv4si b)36h (uv4si a, uv4si b) 37 { 38 return a > b; 39 } 40 41 v2di i(uv2di a,uv2di b)42i (uv2di a, uv2di b) 43 { 44 return a > b; 45 } 46