<div dir="ltr">On 30 July 2013 11:18, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<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">What about creating special ARMISD::SREM64 (etc) nodes to represent<br>

the operation during ReplaceNodeResults?</blockquote><div><br></div><div>Now that you mention, that did cross my mind very briefly, but I thought I could still fix it some other way, and then I lost it.</div><div><br></div>
<div>In the light of all my other attempts, this idea is looking good again, but only insofar as the argument for it are "it has been done before" or "we know it won't break surrounding type legalizations" type of things.</div>
<div><br></div><div> <br></div><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"> They could take 4 i32<br>
operands as input and produce 2 i32s as output (All legit 32-bit<br>
operations, guv, honest! Wouldn't touch any of that 64-bit filth!).<br>
You could then feed the output of this node back to the type legalizer<br>
however it expects it (a build_pair op?).<br></blockquote><div><br></div><div>Here's what I don't get. After I use ReplaceNodeResults to legalize SREM64, when legalizing other operations that depend on those results, <span style="font-family:arial,sans-serif;font-size:13px">GetExpandedInteger() still won't find Lo/Hi. How do I get to communicate between custom type lowering and expand type lowering?</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">cheers,</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">--renato</span></div>
</div></div></div>