Tanya Lattner | 2393a24 | 2004-11-06 23:08:26 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as -f %s -o - | llc |
| 2 | |
Vikram S. Adve | a7a1c7e | 2002-07-10 21:54:05 +0000 | [diff] [blame] | 3 | ;; |
| 4 | ;; Test the sequence: |
| 5 | ;; cast -> setle 0, %cast -> br %cond |
| 6 | ;; This sequence should cause the cast value to be forwarded twice, |
| 7 | ;; i.e., cast is forwarded to the setle and teh setle is forwarded |
| 8 | ;; to the branch. |
| 9 | ;; register argument of the "branch-on-register" instruction, i.e., |
| 10 | ;; |
| 11 | ;; This produces the bogus output instruction: |
| 12 | ;; brlez <NULL VALUE>, .L_SumArray_bb3. |
| 13 | ;; This came from %bb1 of sumarrray.ll generated from sumarray.c. |
| 14 | |
| 15 | |
Chris Lattner | 3b5d631 | 2005-01-07 21:15:58 +0000 | [diff] [blame] | 16 | int %SumArray(int %Num) { |
| 17 | %Num = alloca int |
Vikram S. Adve | a7a1c7e | 2002-07-10 21:54:05 +0000 | [diff] [blame] | 18 | br label %Top |
| 19 | Top: |
Vikram S. Adve | a7a1c7e | 2002-07-10 21:54:05 +0000 | [diff] [blame] | 20 | store int %Num, int * %Num |
Chris Lattner | 3b5d631 | 2005-01-07 21:15:58 +0000 | [diff] [blame] | 21 | %reg108 = load int * %Num |
| 22 | %cast1006 = cast int %reg108 to uint |
| 23 | %cond1001 = setle uint %cast1006, 0 |
Vikram S. Adve | a7a1c7e | 2002-07-10 21:54:05 +0000 | [diff] [blame] | 24 | br bool %cond1001, label %bb6, label %Top |
| 25 | |
| 26 | bb6: |
| 27 | ret int 42 |
Chris Lattner | 3b5d631 | 2005-01-07 21:15:58 +0000 | [diff] [blame] | 28 | } |