Andrew Lenharth | 7028590 | 2005-05-04 15:56:34 +0000 | [diff] [blame] | 1 | ; Make sure this testcase codegens to the ctpop instruction |
Reid Spencer | d1f8369 | 2007-04-15 18:40:57 +0000 | [diff] [blame] | 2 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mcpu=ev67 | grep -i ctpop |
| 3 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mattr=+CIX | \ |
| 4 | ; RUN: grep -i ctpop |
| 5 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mcpu=ev6 | \ |
| 6 | ; RUN: not grep -i ctpop |
| 7 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mcpu=ev56 | \ |
| 8 | ; RUN: not grep -i ctpop |
| 9 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha -mattr=-CIX | \ |
| 10 | ; RUN: not grep -i 'ctpop' |
Reid Spencer | 6584cf6 | 2007-04-15 23:00:46 +0000 | [diff] [blame] | 11 | ; XFAIL: * |
Andrew Lenharth | 6b55102 | 2005-05-04 15:20:16 +0000 | [diff] [blame] | 12 | |
Reid Spencer | c7c991f | 2007-04-16 03:18:25 +0000 | [diff] [blame^] | 13 | declare long %llvm.ctpop.i64(long) |
Andrew Lenharth | 6b55102 | 2005-05-04 15:20:16 +0000 | [diff] [blame] | 14 | |
| 15 | implementation ; Functions: |
| 16 | |
| 17 | long %bar(long %x) { |
| 18 | entry: |
Reid Spencer | c7c991f | 2007-04-16 03:18:25 +0000 | [diff] [blame^] | 19 | %tmp.1 = call long %llvm.ctpop.i64( long %x ) |
Andrew Lenharth | 6b55102 | 2005-05-04 15:20:16 +0000 | [diff] [blame] | 20 | ret long %tmp.1 |
| 21 | } |