< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page
rev 53101 : 8214922: Add vectorization support for fmin/fmax
Reviewed-by: duke


3321           Node* mult = new MulLNode(d, d->in(2));
3322           Node* sub  = new SubLNode(d->in(1), mult);
3323           n->subsume_by(sub, this);
3324         }
3325       }
3326     }
3327     break;
3328 
3329   case Op_LoadVector:
3330   case Op_StoreVector:
3331     break;
3332 
3333   case Op_AddReductionVI:
3334   case Op_AddReductionVL:
3335   case Op_AddReductionVF:
3336   case Op_AddReductionVD:
3337   case Op_MulReductionVI:
3338   case Op_MulReductionVL:
3339   case Op_MulReductionVF:
3340   case Op_MulReductionVD:


3341     break;
3342 
3343   case Op_PackB:
3344   case Op_PackS:
3345   case Op_PackI:
3346   case Op_PackF:
3347   case Op_PackL:
3348   case Op_PackD:
3349     if (n->req()-1 > 2) {
3350       // Replace many operand PackNodes with a binary tree for matching
3351       PackNode* p = (PackNode*) n;
3352       Node* btp = p->binary_tree_pack(1, n->req());
3353       n->subsume_by(btp, this);
3354     }
3355     break;
3356   case Op_Loop:
3357   case Op_CountedLoop:
3358   case Op_OuterStripMinedLoop:
3359     if (n->as_Loop()->is_inner_loop()) {
3360       frc.inc_inner_loop_count();




3321           Node* mult = new MulLNode(d, d->in(2));
3322           Node* sub  = new SubLNode(d->in(1), mult);
3323           n->subsume_by(sub, this);
3324         }
3325       }
3326     }
3327     break;
3328 
3329   case Op_LoadVector:
3330   case Op_StoreVector:
3331     break;
3332 
3333   case Op_AddReductionVI:
3334   case Op_AddReductionVL:
3335   case Op_AddReductionVF:
3336   case Op_AddReductionVD:
3337   case Op_MulReductionVI:
3338   case Op_MulReductionVL:
3339   case Op_MulReductionVF:
3340   case Op_MulReductionVD:
3341   case Op_MinReductionV:
3342   case Op_MaxReductionV:
3343     break;
3344 
3345   case Op_PackB:
3346   case Op_PackS:
3347   case Op_PackI:
3348   case Op_PackF:
3349   case Op_PackL:
3350   case Op_PackD:
3351     if (n->req()-1 > 2) {
3352       // Replace many operand PackNodes with a binary tree for matching
3353       PackNode* p = (PackNode*) n;
3354       Node* btp = p->binary_tree_pack(1, n->req());
3355       n->subsume_by(btp, this);
3356     }
3357     break;
3358   case Op_Loop:
3359   case Op_CountedLoop:
3360   case Op_OuterStripMinedLoop:
3361     if (n->as_Loop()->is_inner_loop()) {
3362       frc.inc_inner_loop_count();


< prev index next >