https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87807
Bug ID: 87807 Summary: Passing float, double vectors as variadic args fails on sparcv9 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: ebotcazou at gcc dot gnu.org Target Milestone: --- Target: sparc-sun-solaris2.* Created attachment 44927 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44927&action=edit float vector testcase The attached testcase fails on sparcv9, but works on sparcv7: $ gcc -m64 va-v2sf.c $ ./a.out a = { 1.000000, 2.000000 } x = { 0.000000, 0.000000 } $ gcc -m32 va-v2sf.c $ ./a.out a = { 1.000000, 2.000000 } x = { 1.000000, 2.000000 } The same happens for the equivalent double testcase, while it works on i386/amd64. Of course, the latter has corresponding V2SF/V2DF modes, but still...