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...

Reply via email to