<div dir="ltr">I've reverted this in r289934 as it caused the loop vectorizer to crash in the Python runtime on PPC.<div><br></div><div>You should be able to reproduce by running 'opt -loop-vectorize' over: <a href="https://reviews.llvm.org/P7949">https://reviews.llvm.org/P7949</a></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 15, 2016 at 12:21 PM Matthew Simpson via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mssimpso<br class="gmail_msg">
Date: Thu Dec 15 14:11:05 2016<br class="gmail_msg">
New Revision: 289863<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=289863&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=289863&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
[LV] Enable vectorization of loops with conditional stores by default<br class="gmail_msg">
<br class="gmail_msg">
This patch sets the default value of the "-enable-cond-stores-vec" command line<br class="gmail_msg">
option to "true".<br class="gmail_msg">
<br class="gmail_msg">
Differential Revision: <a href="https://reviews.llvm.org/D27814" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D27814</a><br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp<br class="gmail_msg">
    llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll<br class="gmail_msg">
    llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll<br class="gmail_msg">
    llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll<br class="gmail_msg">
    llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll<br class="gmail_msg">
    llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -191,7 +191,7 @@ static cl::opt<bool> EnableIndVarRegiste<br class="gmail_msg">
     cl::desc("Count the induction variable only once when interleaving"));<br class="gmail_msg">
<br class="gmail_msg">
 static cl::opt<bool> EnableCondStoresVectorization(<br class="gmail_msg">
-    "enable-cond-stores-vec", cl::init(false), cl::Hidden,<br class="gmail_msg">
+    "enable-cond-stores-vec", cl::init(true), cl::Hidden,<br class="gmail_msg">
     cl::desc("Enable if predication of stores during vectorization."));<br class="gmail_msg">
<br class="gmail_msg">
 static cl::opt<unsigned> MaxNestedScalarReductionIC(<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll (original)<br class="gmail_msg">
+++ llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -1,5 +1,5 @@<br class="gmail_msg">
 ; REQUIRES: asserts<br class="gmail_msg">
-; RUN: opt < %s -force-vector-width=2 -enable-cond-stores-vec -loop-vectorize -debug-only=loop-vectorize -disable-output 2>&1 | FileCheck %s<br class="gmail_msg">
+; RUN: opt < %s -force-vector-width=2 -loop-vectorize -debug-only=loop-vectorize -disable-output 2>&1 | FileCheck %s<br class="gmail_msg">
<br class="gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"<br class="gmail_msg">
 target triple = "aarch64--linux-gnu"<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll (original)<br class="gmail_msg">
+++ llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -1,5 +1,5 @@<br class="gmail_msg">
-; RUN: opt < %s -loop-vectorize -S -pass-remarks-missed='loop-vectorize' -pass-remarks-analysis='loop-vectorize' 2>&1 | FileCheck %s<br class="gmail_msg">
-; RUN: opt < %s -passes=loop-vectorize -S -pass-remarks-missed='loop-vectorize' -pass-remarks-analysis='loop-vectorize' 2>&1 | FileCheck %s<br class="gmail_msg">
+; RUN: opt < %s -enable-cond-stores-vec=false -loop-vectorize -S -pass-remarks-missed='loop-vectorize' -pass-remarks-analysis='loop-vectorize' 2>&1 | FileCheck %s<br class="gmail_msg">
+; RUN: opt < %s -enable-cond-stores-vec=false -passes=loop-vectorize -S -pass-remarks-missed='loop-vectorize' -pass-remarks-analysis='loop-vectorize' 2>&1 | FileCheck %s<br class="gmail_msg">
<br class="gmail_msg">
 ; CHECK: remark: source.c:2:8: loop not vectorized: store that is conditionally executed prevents vectorization<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll (original)<br class="gmail_msg">
+++ llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -1,6 +1,6 @@<br class="gmail_msg">
 ; REQUIRES: asserts<br class="gmail_msg">
 ; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s<br class="gmail_msg">
-; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-accesses -enable-cond-stores-vec -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER<br class="gmail_msg">
+; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-accesses -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER<br class="gmail_msg">
<br class="gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll (original)<br class="gmail_msg">
+++ llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -1,6 +1,6 @@<br class="gmail_msg">
 ; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=1 -force-vector-interleave=2 -loop-vectorize -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=UNROLL<br class="gmail_msg">
 ; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=1 -force-vector-interleave=2 -loop-vectorize -verify-loop-info < %s | FileCheck %s --check-prefix=UNROLL-NOSIMPLIFY<br class="gmail_msg">
-; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -enable-cond-stores-vec -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=VEC<br class="gmail_msg">
+; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=VEC<br class="gmail_msg">
<br class="gmail_msg">
 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll (original)<br class="gmail_msg">
+++ llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll Thu Dec 15 14:11:05 2016<br class="gmail_msg">
@@ -1,4 +1,4 @@<br class="gmail_msg">
-; RUN: opt -S -loop-vectorize -instcombine -force-vector-width=2 -force-vector-interleave=1 -enable-interleaved-mem-accesses -vectorize-num-stores-pred=1 -enable-cond-stores-vec < %s | FileCheck %s<br class="gmail_msg">
+; RUN: opt -S -loop-vectorize -instcombine -force-vector-width=2 -force-vector-interleave=1 -enable-interleaved-mem-accesses < %s | FileCheck %s<br class="gmail_msg">
<br class="gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"<br class="gmail_msg">
 %pair = type { i64, i64 }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div>