< prev index next >

src/hotspot/share/adlc/formssel.cpp

Print this page




4156   }
4157 
4158   return ideal_load;
4159 }
4160 
4161 bool MatchRule::is_vector() const {
4162   static const char *vector_list[] = {
4163     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4164     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4165     "MulVS","MulVI","MulVL","MulVF","MulVD",
4166     "CMoveVD", "CMoveVF",
4167     "DivVF","DivVD",
4168     "AbsVF","AbsVD",
4169     "NegVF","NegVD",
4170     "SqrtVD","SqrtVF",
4171     "AndV" ,"XorV" ,"OrV",
4172     "AddReductionVI", "AddReductionVL",
4173     "AddReductionVF", "AddReductionVD",
4174     "MulReductionVI", "MulReductionVL",
4175     "MulReductionVF", "MulReductionVD",

4176     "LShiftCntV","RShiftCntV",
4177     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4178     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4179     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4180     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4181     "LoadVector","StoreVector",
4182     "FmaVD", "FmaVF","PopCountVI",
4183     // Next are not supported currently.
4184     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4185     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4186   };
4187   int cnt = sizeof(vector_list)/sizeof(char*);
4188   if (_rChild) {
4189     const char  *opType = _rChild->_opType;
4190     for (int i=0; i<cnt; i++)
4191       if (strcmp(opType,vector_list[i]) == 0)
4192         return true;
4193   }
4194   return false;
4195 }




4156   }
4157 
4158   return ideal_load;
4159 }
4160 
4161 bool MatchRule::is_vector() const {
4162   static const char *vector_list[] = {
4163     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4164     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4165     "MulVS","MulVI","MulVL","MulVF","MulVD",
4166     "CMoveVD", "CMoveVF",
4167     "DivVF","DivVD",
4168     "AbsVF","AbsVD",
4169     "NegVF","NegVD",
4170     "SqrtVD","SqrtVF",
4171     "AndV" ,"XorV" ,"OrV",
4172     "AddReductionVI", "AddReductionVL",
4173     "AddReductionVF", "AddReductionVD",
4174     "MulReductionVI", "MulReductionVL",
4175     "MulReductionVF", "MulReductionVD",
4176     "MulAddVS2VI",
4177     "LShiftCntV","RShiftCntV",
4178     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4179     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4180     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4181     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4182     "LoadVector","StoreVector",
4183     "FmaVD", "FmaVF","PopCountVI",
4184     // Next are not supported currently.
4185     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4186     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4187   };
4188   int cnt = sizeof(vector_list)/sizeof(char*);
4189   if (_rChild) {
4190     const char  *opType = _rChild->_opType;
4191     for (int i=0; i<cnt; i++)
4192       if (strcmp(opType,vector_list[i]) == 0)
4193         return true;
4194   }
4195   return false;
4196 }


< prev index next >