4176 "DivVF","DivVD",
4177 "MinV","MaxV",
4178 "AbsVF","AbsVD","AbsV",
4179 "NegVF","NegVD","NegVI",
4180 "SqrtVD","SqrtVF",
4181 "AndV" ,"XorV" ,"OrV", "NotV",
4182 "AddReductionVI", "AddReductionVL",
4183 "AddReductionVF", "AddReductionVD",
4184 "MulReductionVI", "MulReductionVL",
4185 "MulReductionVF", "MulReductionVD",
4186 "MinReductionV", "MaxReductionV",
4187 "AndReductionV", "OrReductionV",
4188 "XorReductionV", "SubReductionV",
4189 "LShiftCntV","RShiftCntV",
4190 "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4191 "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4192 "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4193 "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4194 "LoadVector","StoreVector",
4195 "VectorLoadMask", "VectorStoreMask", "VectorBlend", "VectorInsert",
4196 "VectorCastB2X", "VectorCastS2X", "VectorCastI2X",
4197 "VectorCastL2X", "VectorCastF2X", "VectorCastD2X",
4198 "VectorMaskWrapper", "VectorMaskCmp", "VectorReinterpret",
4199 "FmaVD", "FmaVF","PopCountVI",
4200 // Next are not supported currently.
4201 "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4202 "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4203 };
4204 int cnt = sizeof(vector_list)/sizeof(char*);
4205 if (_rChild) {
4206 const char *opType = _rChild->_opType;
4207 for (int i=0; i<cnt; i++)
4208 if (strcmp(opType,vector_list[i]) == 0)
4209 return true;
4210 }
4211 return false;
4212 }
4213
4214
4215 bool MatchRule::skip_antidep_check() const {
|
4176 "DivVF","DivVD",
4177 "MinV","MaxV",
4178 "AbsVF","AbsVD","AbsV",
4179 "NegVF","NegVD","NegVI",
4180 "SqrtVD","SqrtVF",
4181 "AndV" ,"XorV" ,"OrV", "NotV",
4182 "AddReductionVI", "AddReductionVL",
4183 "AddReductionVF", "AddReductionVD",
4184 "MulReductionVI", "MulReductionVL",
4185 "MulReductionVF", "MulReductionVD",
4186 "MinReductionV", "MaxReductionV",
4187 "AndReductionV", "OrReductionV",
4188 "XorReductionV", "SubReductionV",
4189 "LShiftCntV","RShiftCntV",
4190 "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4191 "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4192 "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4193 "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4194 "LoadVector","StoreVector",
4195 "VectorLoadMask", "VectorStoreMask", "VectorBlend", "VectorInsert",
4196 "VectorRearrange","VectorLoadShuffle",
4197 "VectorCastB2X", "VectorCastS2X", "VectorCastI2X",
4198 "VectorCastL2X", "VectorCastF2X", "VectorCastD2X",
4199 "VectorMaskWrapper", "VectorMaskCmp", "VectorReinterpret",
4200 "FmaVD", "FmaVF","PopCountVI",
4201 // Next are not supported currently.
4202 "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4203 "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4204 };
4205 int cnt = sizeof(vector_list)/sizeof(char*);
4206 if (_rChild) {
4207 const char *opType = _rChild->_opType;
4208 for (int i=0; i<cnt; i++)
4209 if (strcmp(opType,vector_list[i]) == 0)
4210 return true;
4211 }
4212 return false;
4213 }
4214
4215
4216 bool MatchRule::skip_antidep_check() const {
|