| /* { dg-do compile } */ |
| /* { dg-require-effective-target lp64 } */ |
| /* { dg-options "-O1 -mno-vis3 -mno-vis4" } */ |
| |
| long neq (long a, long b) |
| { |
| return a != b; |
| } |
| |
| long eq (long a, long b) |
| { |
| return a == b; |
| } |
| |
| long lt (unsigned long a, unsigned long b) |
| { |
| return a < b; |
| } |
| |
| long leq (unsigned long a, unsigned long b) |
| { |
| return a <= b; |
| } |
| |
| long geq (unsigned long a, unsigned long b) |
| { |
| return a >= b; |
| } |
| |
| long gt (unsigned long a, unsigned long b) |
| { |
| return a > b; |
| } |
| |
| /* { dg-final { scan-assembler-times "xor\t%" 2 } } */ |
| /* { dg-final { scan-assembler-times "cmp\t%" 4 } } */ |
| /* { dg-final { scan-assembler-times "movrne\t%" 1 } } */ |
| /* { dg-final { scan-assembler-times "movre\t%" 1 } } */ |
| /* { dg-final { scan-assembler-times "movlu\t%" 1 } } */ |
| /* { dg-final { scan-assembler-times "movleu\t%" 1 } } */ |
| /* { dg-final { scan-assembler-times "movgeu\t%" 1 } } */ |
| /* { dg-final { scan-assembler-times "movgu\t%" 1 } } */ |
| /* { dg-final { scan-assembler-not "sra\t%" } } */ |
| /* { dg-final { scan-assembler-not "and\t%" } } */ |