hotspot/src/share/vm/opto/vectornode.cpp
changeset 33469 30f4811eded0
parent 33155 73bf16b22e89
child 34162 16b54851eaf6
--- a/hotspot/src/share/vm/opto/vectornode.cpp	Mon Oct 26 10:36:54 2015 +0100
+++ b/hotspot/src/share/vm/opto/vectornode.cpp	Mon Oct 26 19:33:31 2015 -0700
@@ -86,6 +86,9 @@
   case Op_MulD:
     assert(bt == T_DOUBLE, "must be");
     return Op_MulVD;
+  case Op_CMoveD:
+    assert(bt == T_DOUBLE, "must be");
+    return Op_CMoveVD;
   case Op_DivF:
     assert(bt == T_FLOAT, "must be");
     return Op_DivVF;
@@ -185,7 +188,7 @@
       (vlen > 1) && is_power_of_2(vlen) &&
       Matcher::vector_size_supported(bt, vlen)) {
     int vopc = VectorNode::opcode(opc, bt);
-    return vopc > 0 && Matcher::match_rule_supported(vopc);
+    return vopc > 0 && Matcher::match_rule_supported(vopc) && (vopc != Op_CMoveD || vlen == 4);
   }
   return false;
 }