On Mon, 21 Jan 2019, Richard Biener wrote: > > Sorry, I don't see what you mean here; can you give an example or elaborate? > > when you call a function with v4si signature but want to pass it a result > from a __mm intrinsic you'd need a temporary union to do the marshalling. > I think you can use a union argument in the function itself and you can > elide the temporary then if you use transparent_union. But I didn't try.
Ah, I see now. I agree transparent_union ought to work, but today both GCC and Clang will reject such attempt; I've filed PR 88955 for the GCC issue. So unfortunately such code would still need a cast or an unnamed temporary, which may be relatively obvious to the reader. Alexander