<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 19, 2012, at 11:40 AM, Nick Lewycky <<a href="mailto:nlewycky@google.com">nlewycky@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On 19 April 2012 09:46, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk">stoklund@2pi.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">

Author: stoklund<br>
Date: Thu Apr 19 11:46:26 2012<br>
New Revision: 155136<br>
<br>These transformations are deferred:<br>
<br>
  (X >>? C) << C   --> X & (-1 << C)  (When X >> C has multiple uses)<br>
  (X >>? C1) << C2 --> X << (C2-C1) & (-1 << C2)   (When C2 > C1)<br>
  (X >>? C1) << C2 --> X >>? (C1-C2) & (-1 << C2)  (When C1 > C2)<br></blockquote><div><br></div><div>If the form on the left is better, please make sure that we turn the code on the right into the code on the left.</div></div></blockquote><div><br></div><div>I don't think we should do that.</div><div><br></div><div>InstCombine doesn't actually have a way of knowing which expression is better, so it will just leave them alone so it at least doesn't break anything.</div><div><br></div><div>DAGCombine is better equipped to decide that.</div><div><br></div><div>/jakob</div><div><br></div></div></body></html>