Rewrite kMirOpSelect for all IF_ccZ opcodes.

Also improve special cases for ARM and add tests.

Change-Id: I06f575b9c7b547dbc431dbfadf2b927151fe16b9
diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h
index 08bf647..1eb9ef9 100644
--- a/compiler/dex/mir_graph.h
+++ b/compiler/dex/mir_graph.h
@@ -259,7 +259,7 @@
     BasicBlockId* phi_incoming;
     // Establish link from check instruction (kMirOpCheck) to the actual throwing instruction.
     MIR* throw_insn;
-    // Fused cmp branch condition.
+    // Branch condition for fused cmp or select.
     ConditionCode ccode;
     // IGET/IPUT lowering info index, points to MIRGraph::ifield_lowering_infos_. Due to limit on
     // the number of code points (64K) and size of IGET/IPUT insn (2), this will never exceed 32K.