Hi,

On Fri, 22 Jul 2011, Richard Guenther wrote:

> Regresses vectorization on i?86 because that defines floathi expanders
> but the vectorizer does not recognize a short -> float conversion
> as that requires different sized vectors (the int -> short truncation
> is also a complication for it).

But the vectorizer should be capable of handling this.  Certainly 
vectorizable_conversion tries to handle this.  Perhaps it's only outer 
loop vectorization?

> #define N 40
> 
> Now, I can dumb down the VRP code to only consider doing the
> unsigned -> signed demotion and never truncate (unless maybe
> the target does not support floatMODE of the current input mode).
> 
> Other suggestions?

Adjust testcase to N=300.
Adjust testcase to work with SSE-only math (it seems the floathi expander 
then is disabled).
Fix the vectorizer.

I think artificially dumbing down VRP would be wrong.


Ciao,
Michael.

Reply via email to