ART: Extend list of instructions accepted as boolean inputs

Previous change allowed integer Phis as inputs of instructions
expecting a boolean type. This list, however, was not exhaustive as
binary operations And, Or and Xor are also valid inputs. This patch
extends the list in SSAChecker.

Change-Id: I5b5c9e7a17992cc4987e3a078ee23ea80028ecfc
diff --git a/compiler/optimizing/graph_checker.cc b/compiler/optimizing/graph_checker.cc
index 3a56c6c..2216cec 100644
--- a/compiler/optimizing/graph_checker.cc
+++ b/compiler/optimizing/graph_checker.cc
@@ -393,8 +393,10 @@
           static_cast<int>(input_index),
           value));
     }
-  } else if (input->GetType() == Primitive::kPrimInt && input->IsPhi()) {
-    // TODO: We need a data-flow analysis which determines if the Phi is boolean.
+  } else if (input->GetType() == Primitive::kPrimInt
+             && (input->IsPhi() || input->IsAnd() || input->IsOr() || input->IsXor())) {
+    // TODO: We need a data-flow analysis to determine if the Phi or
+    //       binary operation is actually Boolean. Allow for now.
   } else if (input->GetType() != Primitive::kPrimBoolean) {
     AddError(StringPrintf(
         "%s instruction %d has a non-Boolean input %d whose type is: %s.",