------- Comment #1 from janis at gcc dot gnu dot org 2008-02-06 18:16 ------- I agree that the behavior should be the same for any non-hardware vector that is passed or returned. That includes vectors that are different sizes from hardware vectors, and vectors that are the same size as hardware vectors when we can't pass them in hardware registers. I don't know if on powerpc*-linux they should be passed in multiple general registers or by reference, but it should be consistent.
David's first statement in the referenced message is "Darwin and PPC64 Linux always define altivec_abi, so those target configurations have not generated warnings." That assumes that the no-altivec ABI isn't available for PPC64 Linux, but it was in 4.0 and seems to have been disabled unintentionally. The code that determines how to pass non-hardware vectors should be the same for 32-bit and 64-bit code, but there are currently checks that make it different. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33899