Andrew Lenharth | eecbf30 | 2005-04-13 16:16:01 +0000 | [diff] [blame] | 1 | ; Make sure this testcase codegens the bsr instruction |
Reid Spencer | 65f47a3 | 2007-04-15 18:40:57 +0000 | [diff] [blame^] | 2 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha | grep bsr |
Andrew Lenharth | eecbf30 | 2005-04-13 16:16:01 +0000 | [diff] [blame] | 3 | |
Andrew Lenharth | ab04e8c | 2006-04-13 17:52:32 +0000 | [diff] [blame] | 4 | implementation |
Andrew Lenharth | eecbf30 | 2005-04-13 16:16:01 +0000 | [diff] [blame] | 5 | |
Andrew Lenharth | ab04e8c | 2006-04-13 17:52:32 +0000 | [diff] [blame] | 6 | internal long %abc(int %x) { |
Andrew Lenharth | eecbf30 | 2005-04-13 16:16:01 +0000 | [diff] [blame] | 7 | %tmp.2 = add int %x, -1 ; <int> [#uses=1] |
| 8 | %tmp.0 = call long %abc( int %tmp.2 ) ; <long> [#uses=1] |
| 9 | %tmp.5 = add int %x, -2 ; <int> [#uses=1] |
| 10 | %tmp.3 = call long %abc( int %tmp.5 ) ; <long> [#uses=1] |
| 11 | %tmp.6 = add long %tmp.0, %tmp.3 ; <long> [#uses=1] |
| 12 | ret long %tmp.6 |
| 13 | } |