http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60896
--- Comment #3 from Cong Hou <congh at google dot com> --- Created attachment 32668 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32668&action=edit The patch to fix PR60896 The reason of this issue is that those statements in PATTERN_DEF_SEQ in pre-recognized widen-mult pattern are not forwarded to later recognized dot-product pattern. I have created a patch to fix this. Another issue is that the def types of statements in PATTERN_DEF_SEQ are assigned with the def type of the pattern statement. This is incorrect for reduction pattern statement, in which case all statements in PATTERN_DEF_SEQ will all be vect_reduction_def, and none of them will be vectorized later. The def type of statement in PATTERN_DEF_SEQ should always be vect_internal_def. This patch will also be submitted to gcc-patch.