The call lowering code assumed that a returned argument could only consist of one register. Pass an ArrayRef<Register> instead of Register to make sure that all parts get assigned.
Not familiar with this code, so not sure whether this is the right approach -- I could imagine that the proper fix is to disable the returned handling for this case, rather than supporting it.