OLD | NEW |
(Empty) | |
| 1 ; Test if forward declare works. |
| 2 |
| 3 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \ |
| 4 ; RUN: | pnacl-bcdis | FileCheck %s |
| 5 |
| 6 ; Tests case where forward declare will be added because of loop carried |
| 7 ; dependency. |
| 8 define void @LoopCarriedDep() { |
| 9 |
| 10 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI
D = 11 |
| 11 ; CHECK-NEXT: {{.*}}| 3: <1, 0> | i32: |
| 12 ; CHECK-NEXT: {{.*}}| 3: <4, 2> | %c0 = i32 1; |
| 13 ; CHECK-NEXT: {{.*}}| 3: <4, 4> | %c1 = i32 2; |
| 14 ; CHECK-NEXT: {{.*}}| 0: <65534> | } |
| 15 |
| 16 b0: |
| 17 %v0 = add i32 1, 2 |
| 18 br label %b1 |
| 19 |
| 20 ; CHECK-NEXT: | | %b0: |
| 21 ; CHECK-NEXT: {{.*}}| 3: <2, 2, 1, 0> | %v0 = add i32 %c0, %c1
; |
| 22 ; CHECK-NEXT: {{.*}}| 3: <11, 1> | br label %b1; |
| 23 |
| 24 b1: |
| 25 %v1 = phi i32 [%v0, %b0], [%v2, %b1] |
| 26 %v2 = add i32 %v1, 1 |
| 27 br label %b1 |
| 28 |
| 29 ; CHECK-NEXT: | | %b1: |
| 30 ; CHECK-NEXT: {{.*}}| 3: <43, 6, 0> | declare i32 %v2; |
| 31 ; CHECK-NEXT: {{.*}}| 3: <16, 0, 2, 0, 3, 1> | %v1 = phi i32 [%v0, %b
0], |
| 32 ; CHECK-NEXT: | | [%v2, %b1]; |
| 33 ; CHECK-NEXT: {{.*}}| 3: <2, 1, 4, 0> | %v2 = add i32 %v1, %c0
; |
| 34 ; CHECK-NEXT: {{.*}}| 3: <11, 1> | br label %b1; |
| 35 |
| 36 } |
| 37 |
| 38 ; Test case where we backward branch. |
| 39 define void @BackBranch(i32 %p0) { |
| 40 br label %b4 |
| 41 |
| 42 ; CHECK: | | %b0: |
| 43 ; CHECK-NEXT: {{.*}}| 3: <11, 4> | br label %b4; |
| 44 |
| 45 b1: |
| 46 %v0 = add i32 %p0, %v3 |
| 47 br label %b6 |
| 48 |
| 49 ; CHECK-NEXT: | | %b1: |
| 50 ; CHECK-NEXT: {{.*}}| 3: <43, 7, 0> | declare i32 %v3; |
| 51 ; CHECK-NEXT: {{.*}}| 3: <2, 2, 4294967293, 0> | %v0 = add i32 %p0, %v3
; |
| 52 ; CHECK-NEXT: {{.*}}| 3: <11, 6> | br label %b6; |
| 53 |
| 54 b2: |
| 55 %v1 = add i32 %p0, %v4 |
| 56 br label %b6 |
| 57 |
| 58 ; CHECK-NEXT: | | %b2: |
| 59 ; CHECK-NEXT: {{.*}}| 3: <43, 8, 0> | declare i32 %v4; |
| 60 ; CHECK-NEXT: {{.*}}| 3: <2, 3, 4294967293, 0> | %v1 = add i32 %p0, %v4
; |
| 61 ; CHECK-NEXT: {{.*}}| 3: <11, 6> | br label %b6; |
| 62 |
| 63 b3: |
| 64 %v2 = add i32 %p0, %v3 ; No forward declare, already done! |
| 65 br label %b6 |
| 66 |
| 67 ; CHECK-NEXT: | | %b3: |
| 68 ; CHECK-NEXT: {{.*}}| 3: <2, 4, 4294967295, 0> | %v2 = add i32 %p0, %v3
; |
| 69 ; CHECK-NEXT: {{.*}}| 3: <11, 6> | br label %b6; |
| 70 |
| 71 b4: |
| 72 %v3 = add i32 %p0, %p0 |
| 73 br i1 1, label %b1, label %b5 |
| 74 |
| 75 ; CHECK-NEXT: | | %b4: |
| 76 ; CHECK-NEXT: {{.*}}| 3: <2, 5, 5, 0> | %v3 = add i32 %p0, %p0
; |
| 77 ; CHECK-NEXT: {{.*}}| 3: <11, 1, 5, 5> | br i1 %c0, label %b1,
label %b5; |
| 78 |
| 79 b5: |
| 80 %v4 = add i32 %v3, %p0 |
| 81 br i1 1, label %b2, label %b3 |
| 82 |
| 83 ; CHECK-NEXT: | | %b5: |
| 84 ; CHECK-NEXT: {{.*}}| 3: <2, 1, 6, 0> | %v4 = add i32 %v3, %p0
; |
| 85 ; CHECK-NEXT: {{.*}}| 3: <11, 2, 3, 6> | br i1 %c0, label %b2,
label %b3; |
| 86 |
| 87 b6: |
| 88 ret void |
| 89 |
| 90 ; CHECK-NEXT: | | %b6: |
| 91 ; CHECK-NEXT: {{.*}}| 3: <10> | ret void; |
| 92 |
| 93 } |
| 94 |
OLD | NEW |