Mercurial > hg > graal-jvmci-8
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 |