1; RUN: opt < %s -mem2reg -instcombine -S | grep "ret i32 1" | count 8
2
3define i32 @test1() {
4entry:
5	%z = alloca i32
6	store i32 0, i32* %z
7	%tmp = load i32, i32* %z
8	%sub = sub i32 %tmp, 1
9	%cmp = icmp ule i32 %sub, 0
10	%retval = select i1 %cmp, i32 0, i32 1
11	ret i32 %retval
12}
13
14define i32 @test2() {
15entry:
16	%z = alloca i32
17	store i32 0, i32* %z
18	%tmp = load i32, i32* %z
19	%sub = sub i32 %tmp, 1
20	%cmp = icmp ugt i32 %sub, 0
21	%retval = select i1 %cmp, i32 1, i32 0
22	ret i32 %retval
23}
24
25define i32 @test3() {
26entry:
27	%z = alloca i32
28	store i32 0, i32* %z
29	%tmp = load i32, i32* %z
30	%sub = sub i32 %tmp, 1
31	%cmp = icmp slt i32 %sub, 0
32	%retval = select i1 %cmp, i32 1, i32 0
33	ret i32 %retval
34}
35
36define i32 @test4() {
37entry:
38	%z = alloca i32
39	store i32 0, i32* %z
40	%tmp = load i32, i32* %z
41	%sub = sub i32 %tmp, 1
42	%cmp = icmp sle i32 %sub, 0
43	%retval = select i1 %cmp, i32 1, i32 0
44	ret i32 %retval
45}
46
47define i32 @test5() {
48entry:
49	%z = alloca i32
50	store i32 0, i32* %z
51	%tmp = load i32, i32* %z
52	%sub = sub i32 %tmp, 1
53	%cmp = icmp sge i32 %sub, 0
54	%retval = select i1 %cmp, i32 0, i32 1
55	ret i32 %retval
56}
57
58define i32 @test6() {
59entry:
60	%z = alloca i32
61	store i32 0, i32* %z
62	%tmp = load i32, i32* %z
63	%sub = sub i32 %tmp, 1
64	%cmp = icmp sgt i32 %sub, 0
65	%retval = select i1 %cmp, i32 0, i32 1
66	ret i32 %retval
67}
68
69define i32 @test7() {
70entry:
71	%z = alloca i32
72	store i32 0, i32* %z
73	%tmp = load i32, i32* %z
74	%sub = sub i32 %tmp, 1
75	%cmp = icmp eq i32 %sub, 0
76	%retval = select i1 %cmp, i32 0, i32 1
77	ret i32 %retval
78}
79
80define i32 @test8() {
81entry:
82	%z = alloca i32
83	store i32 0, i32* %z
84	%tmp = load i32, i32* %z
85	%sub = sub i32 %tmp, 1
86	%cmp = icmp ne i32 %sub, 0
87	%retval = select i1 %cmp, i32 1, i32 0
88	ret i32 %retval
89}
90