1/* { dg-do compile } */ 2/* { dg-require-effective-target lp64 } */ 3/* { dg-options "-O1 -mno-vis3" } */ 4 5long neq (long a, long b) 6{ 7 return a != b; 8} 9 10long eq (long a, long b) 11{ 12 return a == b; 13} 14 15long lt (unsigned long a, unsigned long b) 16{ 17 return a < b; 18} 19 20long leq (unsigned long a, unsigned long b) 21{ 22 return a <= b; 23} 24 25long geq (unsigned long a, unsigned long b) 26{ 27 return a >= b; 28} 29 30long gt (unsigned long a, unsigned long b) 31{ 32 return a > b; 33} 34 35/* { dg-final { scan-assembler-times "xor\t%" 2 } } */ 36/* { dg-final { scan-assembler-times "cmp\t%" 4 } } */ 37/* { dg-final { scan-assembler-times "movrne\t%" 1 } } */ 38/* { dg-final { scan-assembler-times "movre\t%" 1 } } */ 39/* { dg-final { scan-assembler-times "movlu\t%" 1 } } */ 40/* { dg-final { scan-assembler-times "movleu\t%" 1 } } */ 41/* { dg-final { scan-assembler-times "movgeu\t%" 1 } } */ 42/* { dg-final { scan-assembler-times "movgu\t%" 1 } } */ 43/* { dg-final { scan-assembler-not "sra\t%" } } */ 44/* { dg-final { scan-assembler-not "and\t%" } } */ 45