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.