blob: 3204bda49f0b1125466158540a551d01c04ba429 [file] [log] [blame]
James Molloy897048b2015-09-29 14:08:45 +00001; RUN: opt -instsimplify -S < %s | FileCheck %s
2
3; CHECK-LABEL: @test1
4define i1 @test1(i8 %p, i8* %pq, i8 %n, i8 %r) {
5entry:
6 br label %loop
7loop:
8 %A = phi i8 [ 1, %entry ], [ %next, %loop ]
9 %next = add nsw i8 %A, 1
10 %cmp1 = icmp eq i8 %A, %n
11 br i1 %cmp1, label %exit, label %loop
12exit:
13 %add = or i8 %A, %r
14 %cmp = icmp eq i8 %add, 0
15 ; CHECK: ret i1 false
16 ret i1 %cmp
17}
18
19; CHECK-LABEL: @test2
20define i1 @test2(i8 %p, i8* %pq, i8 %n, i8 %r) {
21entry:
22 br label %loop
23loop:
24 %A = phi i8 [ 1, %entry ], [ %next, %loop ]
25 %next = add i8 %A, 1
26 %cmp1 = icmp eq i8 %A, %n
27 br i1 %cmp1, label %exit, label %loop
28exit:
29 %add = or i8 %A, %r
30 %cmp = icmp eq i8 %add, 0
31 ; CHECK-NOT: ret i1 false
32 ret i1 %cmp
33}
34
35; CHECK-LABEL: @test3
36define i1 @test3(i8 %p, i8* %pq, i8 %n, i8 %r) {
37entry:
38 br label %loop
39loop:
40 %A = phi i8 [ 1, %entry ], [ %next, %loop ]
41 %next = add nuw i8 %A, 1
42 %cmp1 = icmp eq i8 %A, %n
43 br i1 %cmp1, label %exit, label %loop
44exit:
45 %add = or i8 %A, %r
46 %cmp = icmp eq i8 %add, 0
47 ; CHECK: ret i1 false
48 ret i1 %cmp
49}