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