<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Ping?<div><br><div><div>On Jun 18, 2013, at 11:14 AM, Michael Gottesman <<a href="mailto:mgottesman@apple.com">mgottesman@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hey Duncan.<div><br></div><div>Sorry for the delay. Attached is a patch which follows what you suggested on IRC. Specifically:</div><div><br></div><div>1. I updated the logic to handle the promotion of UADDO so that it just uses 1 getSetCC instead of truncating/zexting which is unnecessary since:</div><div><br></div><div>Addition:      x + y < x => carry</div><div>Subtraction: x - y > x => carry</div><div><br></div><div>2. I refactored out said method and used it to also handle the promotion of ADDC.</div><div><br></div><div>3. I implemented a similar algorithm for ADDE. Specifically for addition:</div><div><br></div><div>sum = x + y + c_in</div><div>carry = [(x & y) | ((x | y) & ~sum)]  >> ((sizeof(carry) << 3)-1)</div><div>         = [(x & y) | ((x | y) & (sum ^ -1))]  >> ((sizeof(carry) << 3)-1)</div><div><br></div><div>and for subtraction:</div><div><br></div><div>diff = x - y - c_in</div><div>carry = [(~x & y) | ((~x | y) & diff)] >> ((sizeof(carry) << 3)-1)</div><div>         = [((x ^ -1) & y) | (((x ^ -1) | y) & diff)  >> ((sizeof(carry) << 3)-1)]</div><div><br></div><div>Hows it look?</div><div><br></div><div>Michael</div><div><br></div><div></div><span><0001-Teach-SelectionDAG-how-to-promote-the-integer-argume.patch></span><div></div><div><br><div><div>On May 26, 2013, at 1:35 PM, Michael Gottesman <<a href="mailto:mgottesman@apple.com">mgottesman@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Chatted w/Duncan on IRC. I will follow the UADDO logic here (preparing patch).<div><br></div><div>Michael</div><div><br><div><div><div>On May 25, 2013, at 5:54 AM, Duncan Sands <<a href="mailto:duncan.sands@gmail.com">duncan.sands@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Hi Michael,<br><br><blockquote type="cite">Would zero extending just ResNo 0 be a satisfactory lowering (i.e. no inputs,<br>just ResNo 0)?<br></blockquote><br>do you mean not changing the node, just creating a node to extend ResNo 0?  If<br>so, that won't work: the legalizer will go into an infinite loop as it will keep<br>on trying to legalize the original node.<br><br>Ciao, Duncan.<br><br></div></blockquote></div><br></div></div>_______________________________________________<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">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a></div></blockquote></div></div></div></blockquote></div><br></div></body></html>