<div class="gmail_extra"><div class="gmail_quote"><div>Hi Bob, Evan, </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="h5">
<div><blockquote type="cite"><div style="word-wrap:break-word"><div>I vaguely remember this. Do you remember why the multiply isn't moved together with the sext / zext?</div></div></blockquote><br></div></div></div><div>
The change was svn 128502.  The commit message doesn't have many details.  It references <a>rdar://8832507</a> and <a>rdar://9203134</a>.  I took a quick look at 8832507, where I commented that the zext/sext was getting moved by LICM.  Presumably only one of the operands was loop-invariant, so the multiply would remain in the loop.</div>
</div></blockquote><div><br></div><div class="gmail_extra">That makes sense. Thanks for the pointers to the commits/radars too.</div><div><br></div><div>I talked this over with Dan Gohman this morning and we came to the conclusion that the best way of handling this is probably to add a specialized simplify for widening mul intrinsics. It should only simplify when both operands are constant (result is constant), or either constant is zero or one (result is a sext/zext). This was one of Chandler's suggested solutions too. I'll work up a patch soonish.</div>
<div><div class="gmail_extra"><br></div><div class="gmail_extra">- Lang.</div></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br>

llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>