3093 n->subsume_by(divmod->mod_proj(), this);
3094 } else {
3095 // replace a%b with a-((a/b)*b)
3096 Node* mult = new MulLNode(d, d->in(2));
3097 Node* sub = new SubLNode(d->in(1), mult);
3098 n->subsume_by(sub, this);
3099 }
3100 }
3101 }
3102 break;
3103
3104 case Op_LoadVector:
3105 case Op_StoreVector:
3106 break;
3107
3108 case Op_AddReductionVI:
3109 case Op_AddReductionVL:
3110 case Op_AddReductionVF:
3111 case Op_AddReductionVD:
3112 case Op_MulReductionVI:
3113 case Op_MulReductionVF:
3114 case Op_MulReductionVD:
3115 break;
3116
3117 case Op_PackB:
3118 case Op_PackS:
3119 case Op_PackI:
3120 case Op_PackF:
3121 case Op_PackL:
3122 case Op_PackD:
3123 if (n->req()-1 > 2) {
3124 // Replace many operand PackNodes with a binary tree for matching
3125 PackNode* p = (PackNode*) n;
3126 Node* btp = p->binary_tree_pack(1, n->req());
3127 n->subsume_by(btp, this);
3128 }
3129 break;
3130 case Op_Loop:
3131 case Op_CountedLoop:
3132 if (n->as_Loop()->is_inner_loop()) {
|
3093 n->subsume_by(divmod->mod_proj(), this);
3094 } else {
3095 // replace a%b with a-((a/b)*b)
3096 Node* mult = new MulLNode(d, d->in(2));
3097 Node* sub = new SubLNode(d->in(1), mult);
3098 n->subsume_by(sub, this);
3099 }
3100 }
3101 }
3102 break;
3103
3104 case Op_LoadVector:
3105 case Op_StoreVector:
3106 break;
3107
3108 case Op_AddReductionVI:
3109 case Op_AddReductionVL:
3110 case Op_AddReductionVF:
3111 case Op_AddReductionVD:
3112 case Op_MulReductionVI:
3113 case Op_MulReductionVL:
3114 case Op_MulReductionVF:
3115 case Op_MulReductionVD:
3116 break;
3117
3118 case Op_PackB:
3119 case Op_PackS:
3120 case Op_PackI:
3121 case Op_PackF:
3122 case Op_PackL:
3123 case Op_PackD:
3124 if (n->req()-1 > 2) {
3125 // Replace many operand PackNodes with a binary tree for matching
3126 PackNode* p = (PackNode*) n;
3127 Node* btp = p->binary_tree_pack(1, n->req());
3128 n->subsume_by(btp, this);
3129 }
3130 break;
3131 case Op_Loop:
3132 case Op_CountedLoop:
3133 if (n->as_Loop()->is_inner_loop()) {
|