Description
Is your feature request related to a problem? Please describe.
When returning small vectors of floating point values (1-4 components) by value, these are usually returned by being split across [s/d/q][0/1/2/3] registers. The current implementation only detects values returned in [s/d/q]0 as return values occasionally leading to the decompiler ignoring the parts of the function that affect the other components of the vector.
Describe the solution you'd like
Support for splitting float return values across multiple registers like with normal return values being able to be split across x0 and x1.
Describe alternatives you've considered
You can use custom storage to manually fix this, but it is a bit tedious to do this for all functions so built in support would be preferred.
Additional context
Here are some examples in Godbolt demonstrating this in gcc and clang.