OLD | NEW |
1 ; 1. Trivial smoke test of compare and branch, with multiple basic | 1 ; 1. Trivial smoke test of compare and branch, with multiple basic |
2 ; blocks. | 2 ; blocks. |
3 ; 2. For a conditional branch on a constant boolean value, make sure | 3 ; 2. For a conditional branch on a constant boolean value, make sure |
4 ; we don't lower to a cmp instructions with an immediate as the first | 4 ; we don't lower to a cmp instructions with an immediate as the first |
5 ; source operand. | 5 ; source operand. |
6 | 6 |
7 ; REQUIRES: allow_dump | 7 ; REQUIRES: allow_dump |
8 | 8 |
9 ; RUN: %p2i -i %s --args -O2 --verbose inst | FileCheck %s | 9 ; RUN: %p2i -i %s --args -O2 --verbose inst -threads=0 | FileCheck %s |
10 ; RUN: %p2i -i %s --args -Om1 --verbose inst | FileCheck %s | 10 ; RUN: %p2i -i %s --args -Om1 --verbose inst -threads=0 | FileCheck %s |
11 | 11 |
12 define i32 @simple_cond_branch(i32 %foo, i32 %bar) { | 12 define i32 @simple_cond_branch(i32 %foo, i32 %bar) { |
13 entry: | 13 entry: |
14 %r1 = icmp eq i32 %foo, %bar | 14 %r1 = icmp eq i32 %foo, %bar |
15 br i1 %r1, label %Equal, label %Unequal | 15 br i1 %r1, label %Equal, label %Unequal |
16 Equal: | 16 Equal: |
17 ret i32 %foo | 17 ret i32 %foo |
18 Unequal: | 18 Unequal: |
19 ret i32 %bar | 19 ret i32 %bar |
20 ; CHECK-LABEL: simple_cond_branch | 20 ; CHECK-LABEL: simple_cond_branch |
21 ; CHECK: br i1 %r1, label %Equal, label %Unequal | 21 ; CHECK: br i1 %r1, label %Equal, label %Unequal |
22 ; CHECK: Equal: | 22 ; CHECK: Equal: |
23 ; CHECK: ret i32 %foo | 23 ; CHECK: ret i32 %foo |
24 ; CHECK: Unequal: | 24 ; CHECK: Unequal: |
25 ; CHECK: ret i32 %bar | 25 ; CHECK: ret i32 %bar |
26 } | 26 } |
27 | 27 |
28 define internal i32 @test_br_const() { | 28 define internal i32 @test_br_const() { |
29 __0: | 29 __0: |
30 br i1 true, label %__1, label %__2 | 30 br i1 true, label %__1, label %__2 |
31 __1: | 31 __1: |
32 ret i32 21 | 32 ret i32 21 |
33 __2: | 33 __2: |
34 ret i32 43 | 34 ret i32 43 |
35 } | 35 } |
36 ; CHECK-LABEL: test_br_const | 36 ; CHECK-LABEL: test_br_const |
37 ; CHECK-NOT: cmp {{[0-9]*}}, | 37 ; CHECK-NOT: cmp {{[0-9]*}}, |
OLD | NEW |