Re: [llvm-dev] Query on unswitching + vectorization
On 5/14/2018 2:21 AM,
Gopalasubramanian, Ganesh wrote:
Looks like some sort
of pass ordering issue; it will vectorize if indvars runs
sometime between loop unswitch and the vectorizer.
That insight is
helpful. I scheduled Canonicalization of induction variable
before loop vectorization and could get the loop vectorized.
The indvars are
heavily dependent on SCEV. If there a scalar like tmp which is
of real type, we may not be able to get the indvars sorted out
because of the integer type limitation in SCEV!
there a way out when we have a scalar float computation that
is dependent on induction variable?
In general, a loop can't be vectorized if there's a PHI node; a
scalar dependency means the iterations have to run in order. But
there are some special cases for reductions and induction
variables. For the LLVM loop vectorizer, see
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project