comparison src/share/vm/adlc/formssel.cpp @ 6802:0702f188baeb

7200233: C2: can't use expand rules for vector instruction rules Summary: Added missed _bottom_type set in ArchDesc::defineExpand() and missed vector nodes in MatchRule::is_vector(). Reviewed-by: twisti, roland, dlong
author kvn
date Tue, 25 Sep 2012 10:41:15 -0700
parents 7eca5de9e0b6
children 859c45fb8cea
comparison
equal deleted inserted replaced
6801:1a9b9cfcef41 6802:0702f188baeb
4041 4041
4042 return ideal_load; 4042 return ideal_load;
4043 } 4043 }
4044 4044
4045 bool MatchRule::is_vector() const { 4045 bool MatchRule::is_vector() const {
4046 if( _rChild ) { 4046 static const char *vector_list[] = {
4047 "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4048 "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4049 "MulVS","MulVI","MulVF","MulVD",
4050 "DivVF","DivVD",
4051 "AndV" ,"XorV" ,"OrV",
4052 "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4053 "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4054 "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4055 "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4056 "LoadVector","StoreVector",
4057 // Next are not supported currently.
4058 "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4059 "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4060 };
4061 int cnt = sizeof(vector_list)/sizeof(char*);
4062 if (_rChild) {
4047 const char *opType = _rChild->_opType; 4063 const char *opType = _rChild->_opType;
4048 if( strcmp(opType,"ReplicateB")==0 || 4064 for (int i=0; i<cnt; i++)
4049 strcmp(opType,"ReplicateS")==0 || 4065 if (strcmp(opType,vector_list[i]) == 0)
4050 strcmp(opType,"ReplicateI")==0 || 4066 return true;
4051 strcmp(opType,"ReplicateL")==0 ||
4052 strcmp(opType,"ReplicateF")==0 ||
4053 strcmp(opType,"ReplicateD")==0 ||
4054 strcmp(opType,"LoadVector")==0 ||
4055 strcmp(opType,"StoreVector")==0 ||
4056 0 /* 0 to line up columns nicely */ )
4057 return true;
4058 } 4067 }
4059 return false; 4068 return false;
4060 } 4069 }
4061 4070
4062 4071