This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR49715, (float)unsigned -> (float)signed


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]