]> granicus.if.org Git - llvm/commit
[SLP] Fixes the bug due to absence of in order uses of scalars which needs to be...
authorMohammad Shahid <Asghar-ahmad.Shahid@amd.com>
Wed, 1 Mar 2017 03:51:54 +0000 (03:51 +0000)
committerMohammad Shahid <Asghar-ahmad.Shahid@amd.com>
Wed, 1 Mar 2017 03:51:54 +0000 (03:51 +0000)
commitb2ec2bd1f672fde5d0352e4f20229f9fbbd8b18a
tree5e8ab7bb843b38df112701e86066e9415a99129b
parenteaeac1f1aae26a3aba1c9a141bfc474f5a76b5b8
[SLP] Fixes the bug due to absence of in order uses of scalars which needs to be available
for VectorizeTree() API.This API uses it for proper mask computation to be used in shufflevector IR.
The fix is to compute the mask for out of order memory accesses while building the vectorizable tree
instead of actual vectorization of vectorizable tree.

Reviewers: mkuper

Differential Revision: https://reviews.llvm.org/D30159

Change-Id: Id1e287f073fa4959713ba545fa4254db5da8b40d

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296575 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/LoopAccessAnalysis.h
lib/Analysis/LoopAccessAnalysis.cpp
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/SLPVectorizer/X86/jumbled-load-bug.ll [new file with mode: 0644]
test/Transforms/SLPVectorizer/X86/jumbled-same.ll