hotspot/src/share/vm/opto/superword.cpp
changeset 2154 72a9b7284ccf
parent 2105 347008ce7984
parent 2131 98f9cef66a34
child 2334 742b05aeec42
equal deleted inserted replaced
2106:ec595a5e793e 2154:72a9b7284ccf
   468     n = n->in(MemNode::Memory);
   468     n = n->in(MemNode::Memory);
   469   }
   469   }
   470 }
   470 }
   471 
   471 
   472 //------------------------------stmts_can_pack---------------------------
   472 //------------------------------stmts_can_pack---------------------------
   473 // Can s1 and s2 be in a pack with s1 immediately preceeding s2 and
   473 // Can s1 and s2 be in a pack with s1 immediately preceding s2 and
   474 // s1 aligned at "align"
   474 // s1 aligned at "align"
   475 bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) {
   475 bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) {
   476   if (isomorphic(s1, s2)) {
   476   if (isomorphic(s1, s2)) {
   477     if (independent(s1, s2)) {
   477     if (independent(s1, s2)) {
   478       if (!exists_at(s1, 0) && !exists_at(s2, 1)) {
   478       if (!exists_at(s1, 0) && !exists_at(s2, 1)) {
   867 
   867 
   868   // Return false if some input is not vector and inside block
   868   // Return false if some input is not vector and inside block
   869   for (uint i = start; i < end; i++) {
   869   for (uint i = start; i < end; i++) {
   870     if (!is_vector_use(p0, i)) {
   870     if (!is_vector_use(p0, i)) {
   871       // For now, return false if not scalar promotion case (inputs are the same.)
   871       // For now, return false if not scalar promotion case (inputs are the same.)
   872       // Later, implement PackNode and allow differring, non-vector inputs
   872       // Later, implement PackNode and allow differing, non-vector inputs
   873       // (maybe just the ones from outside the block.)
   873       // (maybe just the ones from outside the block.)
   874       Node* p0_def = p0->in(i);
   874       Node* p0_def = p0->in(i);
   875       for (uint j = 1; j < p->size(); j++) {
   875       for (uint j = 1; j < p->size(); j++) {
   876         Node* use = p->at(j);
   876         Node* use = p->at(j);
   877         Node* def = use->in(i);
   877         Node* def = use->in(i);