------- Comment #4 from pinskia at gcc dot gnu dot org 2010-09-08 17:43 ------- Yes this is invalid with respect of alignment requirements.
It becomes obvious from the optimized at -O0 on the trunk. v4df llvm_cbe_r5585; v4df llvm_cbe_r5584; struct l_DV1 llvm_cbe__24__StackDv_P53; unsigned int * D.3215; struct l_DV1 * llvm_cbe__24__StackDv_P53.0; <bb 2>: llvm_cbe__24__StackDv_P53.0_1 = &llvm_cbe__24__StackDv_P53; MEM[(v4df *)llvm_cbe__24__StackDv_P53.0_1] = llvm_cbe_r5584_2(D); // requires v4df alignment D.3215_3 = &llvm_cbe__24__StackDv_P53.field1.field5; MEM[(struct *)D.3215_3].data = llvm_cbe_r5585_4(D); // requires v4df alignment -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45600