Author: hans Date: Thu Jan 19 12:35:20 2017 New Revision: 292503 URL: http://llvm.org/viewvc/llvm-project?rev=292503&view=rev Log: Merging r292254 and r292280: ------------------------------------------------------------------------ r292254 | mssimpso | 2017-01-17 12:51:39 -0800 (Tue, 17 Jan 2017) | 8 lines
[LV] Mark non-consecutive-like pointers non-uniform If a memory instruction will be vectorized, but it's pointer operand is non-consecutive-like, the instruction is a gather or scatter operation. Its pointer operand will be non-uniform. This should fix PR31671. Reference: https://llvm.org/bugs/show_bug.cgi?id=31671 Differential Revision: https://reviews.llvm.org/D28819 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r292280 | mssimpso | 2017-01-17 14:21:33 -0800 (Tue, 17 Jan 2017) | 1 line [LV] Add requires asserts to test case ------------------------------------------------------------------------ Added: llvm/branches/release_40/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll - copied, changed from r292254, llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll Modified: llvm/branches/release_40/ (props changed) llvm/branches/release_40/lib/Transforms/Vectorize/LoopVectorize.cpp Propchange: llvm/branches/release_40/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Jan 19 12:35:20 2017 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,291863,291875,291966,291968,291979,292133,292242,292255 +/llvm/trunk:155241,291863,291875,291966,291968,291979,292133,292242,292254-292255,292280 Modified: llvm/branches/release_40/lib/Transforms/Vectorize/LoopVectorize.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=292503&r1=292502&r2=292503&view=diff ============================================================================== --- llvm/branches/release_40/lib/Transforms/Vectorize/LoopVectorize.cpp (original) +++ llvm/branches/release_40/lib/Transforms/Vectorize/LoopVectorize.cpp Thu Jan 19 12:35:20 2017 @@ -5602,6 +5602,13 @@ void LoopVectorizationLegality::collectL // is consecutive-like, the pointer operand should remain uniform. else if (hasConsecutiveLikePtrOperand(&I)) ConsecutiveLikePtrs.insert(Ptr); + + // Otherwise, if the memory instruction will be vectorized and its + // pointer operand is non-consecutive-like, the memory instruction should + // be a gather or scatter operation. Its pointer operand will be + // non-uniform. + else + PossibleNonUniformPtrs.insert(Ptr); } // Add to the Worklist all consecutive and consecutive-like pointers that Copied: llvm/branches/release_40/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll (from r292254, llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll) URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll?p2=llvm/branches/release_40/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll&p1=llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll&r1=292254&r2=292503&rev=292503&view=diff ============================================================================== --- llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll (original) +++ llvm/branches/release_40/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll Thu Jan 19 12:35:20 2017 @@ -1,3 +1,4 @@ +; REQUIRES: asserts ; RUN: opt < %s -loop-vectorize -instcombine -S -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits