http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51895
--- Comment #15 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-20 14:40:09 UTC --- Testing @@ -3891,6 +3853,8 @@ decide_one_param_reduction (struct acces { by_ref = false; agg_size = cur_parm_size; + if (DECL_MODE (parm) != BLKmode) + return 0; } if (dump_file) as passing a parameter by value in non-BLKmode (on the PARM_DECL) should be good evidence to not split it down further (in this case we have TYPE_SIZE != MODE_SIZE as well, but that's another story). Hopefully DECL_MODE on the PARM_DECL is good enough and reflects actual argument passing closely enough ... ?