[patch][rfa] Add ltu,leu,gtu,geu support for unsigned modes

Dave Brolley brolley@redhat.com
Thu May 8 18:18:00 GMT 2003


Thanks for your comments. Some questions and further comments below....

Doug Evans wrote:

>
>The first indication that you're barking up the wrong tree is that
>cgen-ops.h generally doesn't have Umode support (e.g. ADDUSI).
>
Yet types.scm does support them and cgen happily consumes them with the 
expected result. Also, just about every .cpu file in cgen/cpu contains 
an instance of the mode USI. That's why I was led to believe that this 
support was appropriate.

>
>There's a reason.  It's excessive and unnecessary and I don't want
>to unnecessarily propagate them.  GCC doesn't have Umodes.
>I added Umodes mostly as an escape hatch, but a controlled one.
>
Can you explain this? An escape hatch for what? And what limits do you 
have in mind? It may be excessive, but one could also argue that it's 
more complete to support Umodes.

>
>If this patch goes in and the general direction it takes cgen-ops.h in
>is allowed to proceed, I think that's a bad thing.
>
>Do you get the desired result if you replace the above with
>
>  (if (ltu (zext DI op1) (zext DI op2 ))(set op3 op1 ))
>
Yes, however this example is from machine generated code (a customer's 
tool) and the customer thought (and convinced me too) that the use of 
the Umode UDI is reasonable, since Umodes are frequently used and 
accepted in many instances. FWIW, by coincidence

(if (lt (zext UDI op1) (zext UDI op2 ))(set op3 op1 ))

works and it's hard to explain to the customer why ltu doesn't accept 
umodes while lt does.

>
>Note this: from doc/rtl.texi:
>
>@item UQI,UHI,USI,UDI
>Unsigned versions of QI,HI,SI,DI.
>
>These modes do not appear in semantic RTL.  Instead, the RTL function
>specifies the signedness of its operands where necessary.
>
>??? I'm not entirely sure these unsigned modes are needed.
>They are useful in removing any ambiguity in how to sign extend constants
>which has been a source of problems in GCC.
>
>??? Some existing ports use these modes.
>
Perhaps this can help me convince the customer.

Dave



More information about the Cgen mailing list