<div dir="ltr"><div>Tim,</div><div><br></div><div>  The issue is saturation is treated differently for signed than it is for unsigned.</div><div><br></div><div>Ryan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 9:49 AM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 15 February 2017 at 17:02, Ryan Taylor <<a href="mailto:ryta1203@gmail.com">ryta1203@gmail.com</a>> wrote:<br>
> Tim, yes, I am on a very unique architecture, just about every instruction<br>
> has a signed and unsigned operation (ie, adds, addu, subs, subu, etc...) and<br>
> we handle signed and unsigned somewhat differently.<br>
<br>
</span>What's special about them? Flag setting? Trapping? Not a 2s-complement<br>
representation? Something else entirely?<br>
<br>
Roughly, to provide decent advice I think we need to know what goes<br>
wrong if you map everything to unsigned operations. Both C and LLVM IR<br>
view that as an acceptable choice so fixing the issue is likely to be<br>
intricate.<br>
<br>
Cheers.<br>
<span class="HOEnZb"><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br></div>