According to the EABI documentation, the hard float ABI passes 64-bit and 128-bit containerized vectors in aligned VFP registers, regardless of whether vectors are available. This is what GCC does, even if it can't legalize the vector type.
However, on hard float without NEON (e.g. Raspbian), Clang unpacks them into individual arguments.
This results in integer vectors being passed in r0-r3, and float/double registers to not be aligned to doubleword or quadword register pairs.
Related to #62994.
According to the EABI documentation, the hard float ABI passes 64-bit and 128-bit containerized vectors in aligned VFP registers, regardless of whether vectors are available. This is what GCC does, even if it can't legalize the vector type.
However, on hard float without NEON (e.g. Raspbian), Clang unpacks them into individual arguments.
This results in integer vectors being passed in r0-r3, and float/double registers to not be aligned to doubleword or quadword register pairs.
https://godbolt.org/z/73Kjc5zaM