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

--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
On Sun, 19 Nov 2017, hubicka at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83008
> 
> Jan Hubicka <hubicka at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>              Status|UNCONFIRMED                 |NEW
>    Last reconfirmed|                            |2017-11-19
>      Ever confirmed|0                           |1
> 
> --- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
> I now get fir first loop:
> 
> 
> a.c:6:5: note: Cost model analysis:                                           
>   
>   Vector inside of loop cost: 1120                                            
>   
>   Vector prologue cost: 0                                                     
>   
>   Vector epilogue cost: 0                                                     
>   
>   Scalar iteration cost: 328                                                  
>   
>   Scalar outside cost: 0                                                      
>   
>   Vector outside cost: 0                                                      
>   
>   prologue iterations: 0                                                      
>   
>   epilogue iterations: 0                                                      
>   
>   Calculated minimum iters for profitability: 0                               
>   
> a.c:6:5: note:   Runtime profitability threshold = 4                          
>   
> a.c:6:5: note:   Static estimate profitability threshold = 4                  
>   
> 
> For second lop I get:
> 
> a.c:20:5: note: type of def: internal                                         
>   
> a.c:20:5: note: mark relevant 1, live 0: sum.0_60 = (unsigned int) sum_102;   
>   
> a.c:20:5: note: worklist: examine stmt: sum.0_60 = (unsigned int) sum_102;    
>   
> a.c:20:5: note: vect_is_simple_use: operand sum_102                           
>   
> a.c:20:5: note: def_stmt: sum_102 = PHI <0(6), sum_75(7)>                     
>   
> a.c:20:5: note: type of def: unknown                                          
>   
> a.c:20:5: note: Unsupported pattern.                                          
>   
> a.c:20:5: note: not vectorized: unsupported use in stmt.                      
>   
> a.c:20:5: note: unexpected pattern.                               
> 
> Is it really that hard to sum values in vector?              

The issue is the vectorizer doesn't currently handle conversions:

t.c:20:5: note: Analyze phi: sum_102 = PHI <0(6), sum_75(7)>
t.c:20:5: note: reduction: not commutative/associative: sum_75 = (int) 
_61;

I have patches to fix that though.  Sitting somewhere...  see PR65930.

Reply via email to