------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-14
06:51 -------
Hmm, but vectors are not consider as aggregates.
at the tree level right before optimization, we have:
A_6 = {1.2999999523162841796875e+0, 1.2999999523162841796875e+0,
1.2999999523162841796875e+0, 1.2999999523162841796875e+0};
# result_26 = V_MAY_DEF <result_14>;
__builtin_ia32_storeups (&result, A_6);
I would have thought that VECTOR_CST would be considered a constant and
propgrated into
__builtin_ia32_storeups and that we would have folded __builtin_ia32_storeups
at the tree level.
So I think there are two issues now, the first is that we don't constant prop
VECTOR_CST (if this is truely
a VECTOR_CST in store_ccp):
A_6 = {1.2999999523162841796875e+0, 1.2999999523162841796875e+0,
1.2999999523162841796875e+0, 1.2999999523162841796875e+0};
Lattice value changed to VARYING. Adding SSA edges to worklist.
And then we need a fold specific to x86 for __builtin_ia32_storeups, after that
it should just work.
--
What |Removed |Added
----------------------------------------------------------------------------
BugsThisDependsOn|14295 |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18562