------- 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