------- Comment #5 from irar at il dot ibm dot com  2010-08-10 10:23 -------
(In reply to comment #1)
> This patch should be a valid fix, because the recognition of the dot_prod
> pattern is known to be fail at this point if the stmt is outside the loop.
> (I am not sure whether we should not see this case in the vectorizer at this
> point -- should previous analysis already filter out?):
> 

I don't understand this. Where do we check if the stmt (which one?) is outside
the loop? 


> diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
> index 19f0ae6..5f81a73 100644
> --- a/gcc/tree-vect-patterns.c
> +++ b/gcc/tree-vect-patterns.c
> @@ -259,6 +259,10 @@ vect_recog_dot_prod_pattern (gimple last_stmt, tree
> *type_in, tree *type_out)
>       inside the loop (in case we are analyzing an outer-loop).  */
>    if (!is_gimple_assign (stmt))
>      return NULL;
> +
> +  if (!flow_bb_inside_loop_p (loop, gimple_bb (stmt)))
> +    return NULL;
> +
>    stmt_vinfo = vinfo_for_stmt (stmt);
>    gcc_assert (stmt_vinfo);
>    if (STMT_VINFO_DEF_TYPE (stmt_vinfo) != vect_internal_def)
> 

I was looking at PR 45239 and didn't notice that there is another PR and didn't
see this comment. So I tested the same fix (successfully on x86_64-suse-linux).
You can commit it if you like (just please notice, that the bug exists on 4.5
as well). 

Thanks,
Ira


-- 

irar at il dot ibm dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-08-10 10:24:00
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45241

Reply via email to