Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality...
[oota-llvm.git] / test / Transforms / SimplifyCFG / switch-to-icmp.ll
1 ; RUN: opt -S -simplifycfg < %s | FileCheck %s
2
3 define zeroext i1 @test1(i32 %x) nounwind readnone ssp noredzone {
4 entry:
5  switch i32 %x, label %lor.rhs [
6    i32 2, label %lor.end
7    i32 1, label %lor.end
8    i32 3, label %lor.end
9  ]
10
11 lor.rhs:
12  br label %lor.end
13
14 lor.end:
15  %0 = phi i1 [ true, %entry ], [ false, %lor.rhs ], [ true, %entry ], [ true, %entry ]
16  ret i1 %0
17
18 ; CHECK-LABEL: @test1(
19 ; CHECK: %x.off = add i32 %x, -1
20 ; CHECK: %switch = icmp ult i32 %x.off, 3
21 }
22
23 define zeroext i1 @test2(i32 %x) nounwind readnone ssp noredzone {
24 entry:
25  switch i32 %x, label %lor.rhs [
26    i32 0, label %lor.end
27    i32 1, label %lor.end
28  ]
29
30 lor.rhs:
31  br label %lor.end
32
33 lor.end:
34  %0 = phi i1 [ true, %entry ], [ false, %lor.rhs ], [ true, %entry ]
35  ret i1 %0
36
37 ; CHECK-LABEL: @test2(
38 ; CHECK: %switch = icmp ult i32 %x, 2
39 }
40
41 define i32 @test3(i1 %flag) {
42 entry:
43  switch i1 %flag, label %bad [
44    i1 true, label %good
45    i1 false, label %good
46  ]
47
48 good:
49  ret i32 0
50
51 bad:
52  ret i32 1
53
54 ; CHECK-LABEL: @test3(
55 ; CHECK: entry:
56 ; CHECK-NEXT: ret i32 0
57 }