3037 n->subsume_by(divmod->mod_proj(), this);
3038 } else {
3039 // replace a%b with a-((a/b)*b)
3040 Node* mult = new MulLNode(d, d->in(2));
3041 Node* sub = new SubLNode(d->in(1), mult);
3042 n->subsume_by(sub, this);
3043 }
3044 }
3045 }
3046 break;
3047
3048 case Op_LoadVector:
3049 case Op_StoreVector:
3050 break;
3051
3052 case Op_AddReductionVI:
3053 case Op_AddReductionVL:
3054 case Op_AddReductionVF:
3055 case Op_AddReductionVD:
3056 case Op_MulReductionVI:
3057 case Op_MulReductionVF:
3058 case Op_MulReductionVD:
3059 break;
3060
3061 case Op_PackB:
3062 case Op_PackS:
3063 case Op_PackI:
3064 case Op_PackF:
3065 case Op_PackL:
3066 case Op_PackD:
3067 if (n->req()-1 > 2) {
3068 // Replace many operand PackNodes with a binary tree for matching
3069 PackNode* p = (PackNode*) n;
3070 Node* btp = p->binary_tree_pack(1, n->req());
3071 n->subsume_by(btp, this);
3072 }
3073 break;
3074 case Op_Loop:
3075 case Op_CountedLoop:
3076 if (n->as_Loop()->is_inner_loop()) {
|
3037 n->subsume_by(divmod->mod_proj(), this);
3038 } else {
3039 // replace a%b with a-((a/b)*b)
3040 Node* mult = new MulLNode(d, d->in(2));
3041 Node* sub = new SubLNode(d->in(1), mult);
3042 n->subsume_by(sub, this);
3043 }
3044 }
3045 }
3046 break;
3047
3048 case Op_LoadVector:
3049 case Op_StoreVector:
3050 break;
3051
3052 case Op_AddReductionVI:
3053 case Op_AddReductionVL:
3054 case Op_AddReductionVF:
3055 case Op_AddReductionVD:
3056 case Op_MulReductionVI:
3057 case Op_MulReductionVL:
3058 case Op_MulReductionVF:
3059 case Op_MulReductionVD:
3060 break;
3061
3062 case Op_PackB:
3063 case Op_PackS:
3064 case Op_PackI:
3065 case Op_PackF:
3066 case Op_PackL:
3067 case Op_PackD:
3068 if (n->req()-1 > 2) {
3069 // Replace many operand PackNodes with a binary tree for matching
3070 PackNode* p = (PackNode*) n;
3071 Node* btp = p->binary_tree_pack(1, n->req());
3072 n->subsume_by(btp, this);
3073 }
3074 break;
3075 case Op_Loop:
3076 case Op_CountedLoop:
3077 if (n->as_Loop()->is_inner_loop()) {
|