I've committed this patch for amdgcn. This changes the procedure calling ABI such that vector arguments are passed in vector registers, rather than on the stack as before. The ABI for scalar functions is the same for arguments, but the return value has now moved to a vector register; keeping it the same for all types simplifies the compiler implementation. If a significant down-side is found then we can move to having multiple return locations, and worry about how to fix the "untyped" calls then. There's no "standard ABI" for this target, and there are no third party binaries with which to retain compatibility, so we're free to make whatever changes we wish. Andrew