https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116142

--- Comment #10 from rguenther at suse dot de <rguenther at suse dot de> ---
On Thu, 1 Aug 2024, xry111 at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116142
> 
> --- Comment #9 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
> In the following call stack:
> 
> #0  single_imm_use (var=0x7ffff564a3a8, use_p=0x7fffffffc9d8, 
>     stmt=0x7fffffffc9e0) at ../../gcc/gcc/ssa-iterators.h:427
> #1  0x0000000001aabcde in vec_info::lookup_single_use (this=0x33a1b80, 
>     lhs=0x7ffff564a3a8) at ../../gcc/gcc/tree-vectorizer.cc:581
> #2  0x0000000001a1a40a in supportable_widening_operation (vinfo=0x33a1b80, 
>     code=..., stmt_info=0x3482b50, vectype_out=0x7ffff595a1f8, 
>     vectype_in=0x7ffff595a000, code1=0x7fffffffcb90, code2=0x7fffffffcb94, 
>     multi_step_cvt=0x7fffffffcba0, interm_types=0x7fffffffcc48)
>     at ../../gcc/gcc/tree-vect-stmts.cc:14196
> #3  0x00000000019f7c2d in vectorizable_conversion (vinfo=0x33a1b80, 
>     stmt_info=0x3482b50, gsi=0x0, vec_stmt=0x0, slp_node=0x33b4cc8, 
>     cost_vec=0x7fffffffd190) at ../../gcc/gcc/tree-vect-stmts.cc:5438
> #4  0x0000000001a16ecc in vect_analyze_stmt (vinfo=0x33a1b80, 
>     stmt_info=0x3482b50, need_to_vectorize=0x7fffffffcf73, node=0x33b4cc8, 
>     node_instance=0x32fb6e0, cost_vec=0x7fffffffd190)
>     at ../../gcc/gcc/tree-vect-stmts.cc:13291
> 
> "ptr == ptr->next" is satisfied (the comment says it means "there aren't any
> uses whatsoever" but I don't really understand it: I knows almost nothing 
> about
> tree vectorization) and single_imm_use directly returns false.

So likely 

          tree lhs = gimple_assign_lhs (stmt_info->stmt);
          stmt_vec_info use_stmt_info = loop_info->lookup_single_use 
(lhs);
          if (use_stmt_info

needs to be

          tree lhs = gimple_assign_lhs (vect_orig_stmt (stmt_info)->stmt);
          stmt_vec_info use_stmt_info = loop_info->lookup_single_use 
(lhs);

Reply via email to