| OLD | NEW |
| 1 ; Tests if we handle a branch instructions. | 1 ; Tests if we handle a branch instructions. |
| 2 | 2 |
| 3 ; RUN: %p2i -i %s --insts | FileCheck %s | 3 ; RUN: %p2i -i %s --insts | FileCheck %s |
| 4 ; RUN: %if --need=allow_disable_ir_gen --command \ | 4 ; RUN: %if --need=allow_disable_ir_gen --command \ |
| 5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \ | 5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \ |
| 6 ; RUN: | %if --need=allow_disable_ir_gen --command \ | 6 ; RUN: | %if --need=allow_disable_ir_gen --command \ |
| 7 ; RUN: FileCheck --check-prefix=NOIR %s | 7 ; RUN: FileCheck --check-prefix=NOIR %s |
| 8 | 8 |
| 9 define void @SimpleBranch() { | 9 define internal void @SimpleBranch() { |
| 10 entry: | 10 entry: |
| 11 br label %b3 | 11 br label %b3 |
| 12 b1: | 12 b1: |
| 13 br label %b2 | 13 br label %b2 |
| 14 b2: | 14 b2: |
| 15 ret void | 15 ret void |
| 16 b3: | 16 b3: |
| 17 br label %b1 | 17 br label %b1 |
| 18 } | 18 } |
| 19 | 19 |
| 20 ; CHECK: define void @SimpleBranch() { | 20 ; CHECK: define internal void @SimpleBranch() { |
| 21 ; CHECK-NEXT: entry: | 21 ; CHECK-NEXT: entry: |
| 22 ; CHECK-NEXT: br label %b3 | 22 ; CHECK-NEXT: br label %b3 |
| 23 ; CHECK-NEXT: b1: | 23 ; CHECK-NEXT: b1: |
| 24 ; CHECK-NEXT: br label %b2 | 24 ; CHECK-NEXT: br label %b2 |
| 25 ; CHECK-NEXT: b2: | 25 ; CHECK-NEXT: b2: |
| 26 ; CHECK-NEXT: ret void | 26 ; CHECK-NEXT: ret void |
| 27 ; CHECK-NEXT: b3: | 27 ; CHECK-NEXT: b3: |
| 28 ; CHECK-NEXT: br label %b1 | 28 ; CHECK-NEXT: br label %b1 |
| 29 ; CHECK-NEXT: } | 29 ; CHECK-NEXT: } |
| 30 | 30 |
| 31 define void @CondBranch(i32 %p) { | 31 define internal void @CondBranch(i32 %p) { |
| 32 entry: | 32 entry: |
| 33 %test = trunc i32 %p to i1 | 33 %test = trunc i32 %p to i1 |
| 34 br i1 %test, label %b1, label %b2 | 34 br i1 %test, label %b1, label %b2 |
| 35 b1: | 35 b1: |
| 36 ret void | 36 ret void |
| 37 b2: | 37 b2: |
| 38 br i1 %test, label %b2, label %b1 | 38 br i1 %test, label %b2, label %b1 |
| 39 } | 39 } |
| 40 | 40 |
| 41 ; CHECK-NEXT: define void @CondBranch(i32 %p) { | 41 ; CHECK-NEXT: define internal void @CondBranch(i32 %p) { |
| 42 ; CHECK-NEXT: entry: | 42 ; CHECK-NEXT: entry: |
| 43 ; CHECK-NEXT: %test = trunc i32 %p to i1 | 43 ; CHECK-NEXT: %test = trunc i32 %p to i1 |
| 44 ; CHECK-NEXT: br i1 %test, label %b1, label %b2 | 44 ; CHECK-NEXT: br i1 %test, label %b1, label %b2 |
| 45 ; CHECK-NEXT: b1: | 45 ; CHECK-NEXT: b1: |
| 46 ; CHECK-NEXT: ret void | 46 ; CHECK-NEXT: ret void |
| 47 ; CHECK-NEXT: b2: | 47 ; CHECK-NEXT: b2: |
| 48 ; CHECK-NEXT: br i1 %test, label %b2, label %b1 | 48 ; CHECK-NEXT: br i1 %test, label %b2, label %b1 |
| 49 ; CHECK-NEXT: } | 49 ; CHECK-NEXT: } |
| 50 | 50 |
| 51 ; NOIR: Total across all functions | 51 ; NOIR: Total across all functions |
| OLD | NEW |