This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/47947] Variables of type vector double are not copied correctly in gcc-4.5.1 and gcc-4.6.0
- From: "pthaugen at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 3 Mar 2011 22:12:19 +0000
- Subject: [Bug target/47947] Variables of type vector double are not copied correctly in gcc-4.5.1 and gcc-4.6.0
- Auto-submitted: auto-generated
- References: <bug-47947-4@http.gcc.gnu.org/bugzilla/>
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.