4172 "CMoveVD", "CMoveVF",
4173 "DivVF","DivVD",
4174 "MinV","MaxV",
4175 "AbsVF","AbsVD","AbsV",
4176 "NegVF","NegVD","NegVI",
4177 "SqrtVD","SqrtVF",
4178 "AndV" ,"XorV" ,"OrV", "NotV",
4179 "AddReductionVI", "AddReductionVL",
4180 "AddReductionVF", "AddReductionVD",
4181 "MulReductionVI", "MulReductionVL",
4182 "MulReductionVF", "MulReductionVD",
4183 "AndReductionV", "OrReductionV",
4184 "XorReductionV", "SubReductionV",
4185 "LShiftCntV","RShiftCntV",
4186 "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4187 "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4188 "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4189 "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4190 "LoadVector","StoreVector",
4191 "VectorLoadMask", "VectorStoreMask", "VectorBlend",
4192 "VectorMaskWrapper", "VectorMaskCmp",
4193 "ConvertVF2VD", "VectorReinterpret",
4194 "FmaVD", "FmaVF","PopCountVI",
4195 // Next are not supported currently.
4196 "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4197 "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4198 };
4199 int cnt = sizeof(vector_list)/sizeof(char*);
4200 if (_rChild) {
4201 const char *opType = _rChild->_opType;
4202 for (int i=0; i<cnt; i++)
4203 if (strcmp(opType,vector_list[i]) == 0)
4204 return true;
4205 }
4206 return false;
4207 }
4208
4209
4210 bool MatchRule::skip_antidep_check() const {
4211 // Some loads operate on what is effectively immutable memory so we
4212 // should skip the anti dep computations. For some of these nodes
4213 // the rewritable field keeps the anti dep logic from triggering but
|
4172 "CMoveVD", "CMoveVF",
4173 "DivVF","DivVD",
4174 "MinV","MaxV",
4175 "AbsVF","AbsVD","AbsV",
4176 "NegVF","NegVD","NegVI",
4177 "SqrtVD","SqrtVF",
4178 "AndV" ,"XorV" ,"OrV", "NotV",
4179 "AddReductionVI", "AddReductionVL",
4180 "AddReductionVF", "AddReductionVD",
4181 "MulReductionVI", "MulReductionVL",
4182 "MulReductionVF", "MulReductionVD",
4183 "AndReductionV", "OrReductionV",
4184 "XorReductionV", "SubReductionV",
4185 "LShiftCntV","RShiftCntV",
4186 "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4187 "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4188 "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4189 "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4190 "LoadVector","StoreVector",
4191 "VectorLoadMask", "VectorStoreMask", "VectorBlend",
4192 "VectorCastB2X", "VectorCastS2X", "VectorCastI2X",
4193 "VectorCastL2X", "VectorCastF2X", "VectorCastD2X",
4194 "VectorMaskWrapper", "VectorMaskCmp", "VectorReinterpret",
4195 "FmaVD", "FmaVF","PopCountVI",
4196 // Next are not supported currently.
4197 "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4198 "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4199 };
4200 int cnt = sizeof(vector_list)/sizeof(char*);
4201 if (_rChild) {
4202 const char *opType = _rChild->_opType;
4203 for (int i=0; i<cnt; i++)
4204 if (strcmp(opType,vector_list[i]) == 0)
4205 return true;
4206 }
4207 return false;
4208 }
4209
4210
4211 bool MatchRule::skip_antidep_check() const {
4212 // Some loads operate on what is effectively immutable memory so we
4213 // should skip the anti dep computations. For some of these nodes
4214 // the rewritable field keeps the anti dep logic from triggering but
|