On Wed, Apr 4, 2012 at 4:32 PM, Richard Henderson <r...@redhat.com> wrote: > On 04/04/2012 09:46 AM, Richard Guenther wrote: >> If that is the only reason you can return two values by using a complex >> or vector type (that would be only an IL implementation detail as far >> as I can see). >> We use that trick to get sincos () "sane" in our IL as well. > > That would work if the two values were of the same type, as they > are with sincos. In the case of compare_exchange, they are not.
You can return an aggregate then (or adjust the IL so that they do have the same type and only fix that up during expansion). Richard. > > > r~