This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/44955] over-prefetched for arrays of complex number
- From: "changpeng dot fang at amd dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jul 2010 17:20:30 -0000
- Subject: [Bug tree-optimization/44955] over-prefetched for arrays of complex number
- References: <bug-44955-18740@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from changpeng dot fang at amd dot com 2010-07-15 17:20 -------
This is a piece of code that shows the two prefetches for b.
mulss %xmm4, %xmm5
addq $8, %rdx
prefetcht0 96(%r11)
prefetcht0 100(%r11)
subss %xmm2, %xmm1
addss %xmm5, %xmm0
In collecting memory references for the loops, the array of the imagine part
is put into the different group from that of the real part (and thus two
prefetches are generated).
eference 0x2d61e70:
group 0x2d63630 (base REALPART_EXPR <*b_64(D)...
Reference 0x2d615e0:
group 0x2d40f40 (base IMAGPART_EXPR <*b_64(D)...
I think that the base should be reduced to the same, with a offset of 4.
So they can be in the same group.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44955