OLD | NEW |
1 ; Test use forward type references in function blocks. | 1 ; Test use forward type references in function blocks. |
2 | 2 |
3 ; RUN: %p2i -i %s --insts | FileCheck %s | 3 ; RUN: %p2i -i %s --insts | FileCheck %s |
4 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bcdis -no-records \ | 4 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bcdis -no-records \ |
5 ; RUN: | FileCheck --check-prefix=DUMP %s | 5 ; RUN: | FileCheck --check-prefix=DUMP %s |
6 ; RUN: %p2i -i %s --args -notranslate -timing | \ | 6 ; RUN: %p2i -i %s --args -notranslate -timing | \ |
7 ; RUN: FileCheck --check-prefix=NOIR %s | 7 ; RUN: FileCheck --check-prefix=NOIR %s |
8 | 8 |
9 define internal void @LoopCarriedDep() { | 9 define internal void @LoopCarriedDep() { |
10 b0: | 10 b0: |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 b6: | 65 b6: |
66 ret void | 66 ret void |
67 } | 67 } |
68 | 68 |
69 ; CHECK: define internal void @BackBranch(i32 %p0) { | 69 ; CHECK: define internal void @BackBranch(i32 %p0) { |
70 ; CHECK-NEXT: b0: | 70 ; CHECK-NEXT: b0: |
71 ; CHECK-NEXT: br label %b4 | 71 ; CHECK-NEXT: br label %b4 |
72 ; CHECK-NEXT: b1: | 72 ; CHECK-NEXT: b1: |
73 ; CHECK-NEXT: %v0 = add i32 %p0, %v3 | 73 ; CHECK-NEXT: %v0 = add i32 %p0, %v3 |
74 ; CHECK-NEXT: br label %b6 | 74 ; CHECK-NEXT: br label %b6 |
75 ; CHECK-NEXT: b2: | |
76 ; CHECK-NEXT: %v1 = add i32 %p0, %v4 | |
77 ; CHECK-NEXT: br label %b6 | |
78 ; CHECK-NEXT: b3: | |
79 ; CHECK-NEXT: %v2 = add i32 %p0, %v3 | |
80 ; CHECK-NEXT: br label %b6 | |
81 ; CHECK-NEXT: b4: | 75 ; CHECK-NEXT: b4: |
82 ; CHECK-NEXT: %v3 = add i32 %p0, %p0 | 76 ; CHECK-NEXT: %v3 = add i32 %p0, %p0 |
83 ; CHECK-NEXT: br i1 true, label %b1, label %b5 | 77 ; CHECK-NEXT: br label %b1 |
84 ; CHECK-NEXT: b5: | |
85 ; CHECK-NEXT: %v4 = add i32 %v3, %p0 | |
86 ; CHECK-NEXT: br i1 true, label %b2, label %b3 | |
87 ; CHECK-NEXT: b6: | 78 ; CHECK-NEXT: b6: |
88 ; CHECK-NEXT: ret void | 79 ; CHECK-NEXT: ret void |
89 ; CHECK-NEXT: } | 80 ; CHECK-NEXT: } |
90 | 81 |
91 ; Snippet of bitcode objdump with forward type references (see "declare"). | 82 ; Snippet of bitcode objdump with forward type references (see "declare"). |
92 ; DUMP: function void @f1(i32 %p0) { // BlockID = 12 | 83 ; DUMP: function void @f1(i32 %p0) { // BlockID = 12 |
93 ; DUMP-NEXT: blocks 7; | 84 ; DUMP-NEXT: blocks 7; |
94 ; DUMP-NEXT: constants { // BlockID = 11 | 85 ; DUMP-NEXT: constants { // BlockID = 11 |
95 ; DUMP-NEXT: i1: <@a0> | 86 ; DUMP-NEXT: i1: <@a0> |
96 ; DUMP-NEXT: %c0 = i1 1; <@a1> | 87 ; DUMP-NEXT: %c0 = i1 1; <@a1> |
(...skipping 15 matching lines...) Expand all Loading... |
112 ; DUMP-NEXT: %v3 = add i32 %p0, %p0; <@a1> | 103 ; DUMP-NEXT: %v3 = add i32 %p0, %p0; <@a1> |
113 ; DUMP-NEXT: br i1 %c0, label %b1, label %b5; | 104 ; DUMP-NEXT: br i1 %c0, label %b1, label %b5; |
114 ; DUMP-NEXT: %b5: | 105 ; DUMP-NEXT: %b5: |
115 ; DUMP-NEXT: %v4 = add i32 %v3, %p0; <@a1> | 106 ; DUMP-NEXT: %v4 = add i32 %v3, %p0; <@a1> |
116 ; DUMP-NEXT: br i1 %c0, label %b2, label %b3; | 107 ; DUMP-NEXT: br i1 %c0, label %b2, label %b3; |
117 ; DUMP-NEXT: %b6: | 108 ; DUMP-NEXT: %b6: |
118 ; DUMP-NEXT: ret void; <@a3> | 109 ; DUMP-NEXT: ret void; <@a3> |
119 ; DUMP-NEXT: } | 110 ; DUMP-NEXT: } |
120 | 111 |
121 ; NOIR: Total across all functions | 112 ; NOIR: Total across all functions |
OLD | NEW |