[Bug target/18562] SSE constant vector initialization produces dead constant values on stack
rth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Jan 11 23:58:00 GMT 2005
------- Additional Comments From rth at gcc dot gnu dot org 2005-01-11 23:58 -------
Your first test case is fixed by the patch for PR13366. We now get
.align 16
.LC0:
.long 1067869798
.long 1067869798
.long 1067869798
.long 1067869798
...
movaps .LC0, %xmm0
movups %xmm0, 56(%esp)
I really don't know what you expected out of your second test case. Perhaps
the problem is that we don't expose what movups means to the compiler. I can
see that perhaps we could reuse MISALIGNED_INDIRECT_REF to represent this
(which as a side benefit would result in movhps+movlps instead of one movups,
which runs faster). But I doubt that we have the machinery at the tree level
to copy-propagate the aggregate initialization from val1[4] -> result[4]. I'm
pretty sure that we have open enhancement requests for this already.
So shall we mark this fixed?
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18562
More information about the Gcc-bugs
mailing list