This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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.