< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page
*** 3409,10 ***
--- 3409,25 ---
        in1->disconnect_inputs(this);
      }
      break;
    }
  
+   case Op_ReverseBytesV:
+   case Op_ReverseV: {
+     if ((uint)n->in(1)->Opcode() == nop) {
+       if (n->is_predicated_vector() && n->in(1)->is_predicated_vector() &&
+           n->in(2) == n->in(1)->in(2)) {
+         // Node (Node X , Mask) Mask => X
+         n->subsume_by(n->in(1)->in(1), this);
+       } else if (!n->is_predicated_using_blend() && !n->in(1)->is_predicated_using_blend()) {
+         // Node (Node X) =>  X
+         n->subsume_by(n->in(1)->in(1), this);
+       }
+     }
+     break;
+   }
+ 
    case Op_Proj: {
      if (OptimizeStringConcat || IncrementalInline) {
        ProjNode* proj = n->as_Proj();
        if (proj->_is_io_use) {
          assert(proj->_con == TypeFunc::I_O || proj->_con == TypeFunc::Memory, "");
< prev index next >