[Bug target/47947] Variables of type vector double are not copied correctly in gcc-4.5.1 and gcc-4.6.0

pthaugen at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 3 22:12:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47947

--- Comment #10 from Pat Haugen <pthaugen at gcc dot gnu.org> 2011-03-03 22:12:12 UTC ---
This is looking like a dup of PR47862, note the following snippet of assembler.

    stfd 0,360(1)     #,
    stfd 12,344(1)     #,
    stfd 13,352(1)     #,
    stfd 11,336(1)     #,
...
    bl .printf     #
    nop
    lfd 11,336(1)     #,
    addi 9,1,384     #,,
    addi 3,31,176     #, tmp156,
    stxvd2x 11,0,9     # in0$hiVectorDouble,
...
    bl .printf     #
    nop
    lfd 13,352(1)     #,
    addi 9,1,384     #,,
    addi 3,31,208     #, tmp156,
    stxvd2x 13,0,9     # in0$loVectorDouble,

0,11,12,13 all hold vector values coming into this snippet, and you can see
we're just saving/restoring part of the vector across the printf calls.



More information about the Gcc-bugs mailing list