ART: Don't fail on unsupported conditions in boolean simplifier

Skip simplification instead of FATALing when an unsupported condition
is found.

Bug: 19992954
Change-Id: Ie2845bead72da63018734e6dd91ce65824658b39
diff --git a/compiler/optimizing/boolean_simplifier.cc b/compiler/optimizing/boolean_simplifier.cc
index e9ca042..ab77505 100644
--- a/compiler/optimizing/boolean_simplifier.cc
+++ b/compiler/optimizing/boolean_simplifier.cc
@@ -72,8 +72,8 @@
     }
   }
 
-  LOG(FATAL) << "Instruction " << cond->DebugName() << " used as a condition";
-  UNREACHABLE();
+  // TODO: b/19992954
+  return nullptr;
 }
 
 void HBooleanSimplifier::Run() {
@@ -105,6 +105,10 @@
     HInstruction* replacement;
     if (NegatesCondition(true_value, false_value)) {
       replacement = GetOppositeCondition(if_condition);
+      if (replacement == nullptr) {
+        // Something we could not handle.
+        continue;
+      }
       if (replacement->GetBlock() == nullptr) {
         block->InsertInstructionBefore(replacement, if_instruction);
       }