< prev index next >

src/share/vm/adlc/formssel.cpp

Print this page




4157   static const char *vector_list[] = {
4158     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4159     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4160     "MulVS","MulVI","MulVL","MulVF","MulVD",
4161     "CMoveVD",
4162     "DivVF","DivVD",
4163     "AbsVF","AbsVD",
4164     "NegVF","NegVD",
4165     "SqrtVD",
4166     "AndV" ,"XorV" ,"OrV",
4167     "AddReductionVI", "AddReductionVL",
4168     "AddReductionVF", "AddReductionVD",
4169     "MulReductionVI", "MulReductionVL",
4170     "MulReductionVF", "MulReductionVD",
4171     "LShiftCntV","RShiftCntV",
4172     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4173     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4174     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4175     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4176     "LoadVector","StoreVector",

4177     // Next are not supported currently.
4178     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4179     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4180   };
4181   int cnt = sizeof(vector_list)/sizeof(char*);
4182   if (_rChild) {
4183     const char  *opType = _rChild->_opType;
4184     for (int i=0; i<cnt; i++)
4185       if (strcmp(opType,vector_list[i]) == 0)
4186         return true;
4187   }
4188   return false;
4189 }
4190 
4191 
4192 bool MatchRule::skip_antidep_check() const {
4193   // Some loads operate on what is effectively immutable memory so we
4194   // should skip the anti dep computations.  For some of these nodes
4195   // the rewritable field keeps the anti dep logic from triggering but
4196   // for certain kinds of LoadKlass it does not since they are




4157   static const char *vector_list[] = {
4158     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4159     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4160     "MulVS","MulVI","MulVL","MulVF","MulVD",
4161     "CMoveVD",
4162     "DivVF","DivVD",
4163     "AbsVF","AbsVD",
4164     "NegVF","NegVD",
4165     "SqrtVD",
4166     "AndV" ,"XorV" ,"OrV",
4167     "AddReductionVI", "AddReductionVL",
4168     "AddReductionVF", "AddReductionVD",
4169     "MulReductionVI", "MulReductionVL",
4170     "MulReductionVF", "MulReductionVD",
4171     "LShiftCntV","RShiftCntV",
4172     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4173     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4174     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4175     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4176     "LoadVector","StoreVector",
4177     "FmaVD", "FmaVF",
4178     // Next are not supported currently.
4179     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4180     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4181   };
4182   int cnt = sizeof(vector_list)/sizeof(char*);
4183   if (_rChild) {
4184     const char  *opType = _rChild->_opType;
4185     for (int i=0; i<cnt; i++)
4186       if (strcmp(opType,vector_list[i]) == 0)
4187         return true;
4188   }
4189   return false;
4190 }
4191 
4192 
4193 bool MatchRule::skip_antidep_check() const {
4194   // Some loads operate on what is effectively immutable memory so we
4195   // should skip the anti dep computations.  For some of these nodes
4196   // the rewritable field keeps the anti dep logic from triggering but
4197   // for certain kinds of LoadKlass it does not since they are


< prev index next >