[llvm-branch-commits] [llvm-branch] r292503 - Merging r292254 and r292280:

Hans Wennborg via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Jan 19 10:35:20 PST 2017


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"




More information about the llvm-branch-commits mailing list