1 /* { dg-do compile } */
2 /* { dg-require-effective-target lp64 } */
3 /* { dg-options "-O1 -mno-vis3 -mno-vis4" } */
4 
neq(long a,long b)5 long neq (long a, long b)
6 {
7   return a != b;
8 }
9 
eq(long a,long b)10 long eq (long a, long b)
11 {
12   return a == b;
13 }
14 
lt(unsigned long a,unsigned long b)15 long lt (unsigned long a, unsigned long b)
16 {
17   return a < b;
18 }
19 
leq(unsigned long a,unsigned long b)20 long leq (unsigned long a, unsigned long b)
21 {
22   return a <= b;
23 }
24 
geq(unsigned long a,unsigned long b)25 long geq (unsigned long a, unsigned long b)
26 {
27   return a >= b;
28 }
29 
gt(unsigned long a,unsigned long b)30 long 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