Reapply r108378, with bugfixes, testcase, and improved comment formatting.
[oota-llvm.git] / test / Transforms / InstCombine / bit-checks.ll
1 ; This test makes sure that these instructions are properly eliminated.
2 ;
3 ; RUN: opt < %s -instcombine -S | \
4 ; RUN:    not grep {tobool}
5 ; END.
6 define i32 @main(i32 %argc, i8** %argv) nounwind ssp {
7 entry:
8   %and = and i32 %argc, 1                         ; <i32> [#uses=1]
9   %tobool = icmp ne i32 %and, 0                   ; <i1> [#uses=1]
10   %and2 = and i32 %argc, 2                        ; <i32> [#uses=1]
11   %tobool3 = icmp ne i32 %and2, 0                 ; <i1> [#uses=1]
12   %or.cond = and i1 %tobool, %tobool3             ; <i1> [#uses=1]
13   %retval.0 = select i1 %or.cond, i32 2, i32 1    ; <i32> [#uses=1]
14   ret i32 %retval.0
15 }