[PATCH] LoopVectorizer: Don't attempt to vectorize extractelement instructions
Nadav Rotem
nrotem at apple.com
Fri Oct 25 13:20:50 PDT 2013
LGTM. Thanks!
On Oct 25, 2013, at 1:13 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> [With the patch this time].
>
> ----- Original Message -----
>> Nadav, Arnold,
>>
>> The loop vectorizer does not currently understand how to vectorize
>> extractelement instructions. The existing check, which excluded all
>> vector-valued instructions, did not catch extractelement instructions
>> because
>> it checked only the return value. As a result, vectorization would
>> proceed,
>> producing illegal instructions like this:
>>
>> %58 = extractelement <2 x i32> %15, i32 0
>> %59 = extractelement i32 %58, i32 0
>>
>> where the second extractelement is illegal because its first operand
>> is not a vector. Later passes (or the verifier) would then crash.
>>
>> We could teach the vectorizer to handle this case when vectorizing,
>> but I think that might be a task better associated with a larger
>> effort in vectorizing vectorized loops. Please review.
>>
>> Thanks again,
>> Hal
>>
>> --
>> Hal Finkel
>> Assistant Computational Scientist
>> Leadership Computing Facility
>> Argonne National Laboratory
>>
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
> <lv-ee-crash.patch>
More information about the llvm-commits
mailing list