<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi,<div><br></div><div>Currently SLP vectorizer can’t handle GEP expressions, and hence it fails to vectorize the following example:</div><div><div><div><font face="Consolas">struct bounds {</font></div><div><font face="Consolas">  int *start;</font></div><div><font face="Consolas">  int *end;</font></div><div><font face="Consolas"><br></font></div><div><font face="Consolas">  void init(bounds *one) {</font></div><div><font face="Consolas">    start = one->start + 10;</font></div><div><font face="Consolas">    end   = one->end   + 12;</font></div><div><font face="Consolas">  };</font></div></div><div><font face="Consolas">};</font></div></div><div><br></div><div>Here GEP could be easily vectorized just like a usual add-operation. The attached patch implements it.</div><div><div><br></div></div><div>With this change performance on SPEC/CFP2006/447.dealII is improved by 2%, while performance of other tests remains unchanged.</div><div><br></div><div>Is it ok for trunk?</div><div><br></div><div></div></body></html>