|  | ; RUN: opt < %s -mem2reg -instcombine -S | grep "ret i32 1" | count 8 | 
|  |  | 
|  | define i32 @test1() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp ule i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 0, i32 1 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test2() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp ugt i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 1, i32 0 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test3() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp slt i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 1, i32 0 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test4() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp sle i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 1, i32 0 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test5() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp sge i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 0, i32 1 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test6() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp sgt i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 0, i32 1 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test7() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp eq i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 0, i32 1 | 
|  | ret i32 %retval | 
|  | } | 
|  |  | 
|  | define i32 @test8() { | 
|  | entry: | 
|  | %z = alloca i32 | 
|  | store i32 0, i32* %z | 
|  | %tmp = load i32* %z | 
|  | %sub = sub i32 %tmp, 1 | 
|  | %cmp = icmp ne i32 %sub, 0 | 
|  | %retval = select i1 %cmp, i32 1, i32 0 | 
|  | ret i32 %retval | 
|  | } |