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 |