summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2013-06-24 12:09:15 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2013-06-24 12:09:15 +0000
commitb252c11cccfac80351d854400dd83d4f07c87d12 (patch)
treef9200cccd453782524d6181932b7407803f26fd0 /llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
parent91472fa4fc220df5a4c7525e86cabce24f5d5e1d (diff)
downloadbcm5719-llvm-b252c11cccfac80351d854400dd83d4f07c87d12.tar.gz
bcm5719-llvm-b252c11cccfac80351d854400dd83d4f07c87d12.zip
Reapply 184685 after the SetVector iteration order fix.
This should hopefully have fixed the stage2/stage3 miscompare on the dragonegg testers. "LoopVectorize: Use the dependence test utility class We now no longer need alias analysis - the cases that alias analysis would handle are now handled as accesses with a large dependence distance. We can now vectorize loops with simple constant dependence distances. for (i = 8; i < 256; ++i) { a[i] = a[i+4] * a[i+8]; } for (i = 8; i < 256; ++i) { a[i] = a[i-4] * a[i-8]; } We would be able to vectorize about 200 more loops (in many cases the cost model instructs us no to) in the test suite now. Results on x86-64 are a wash. I have seen one degradation in ammp. Interestingly, the function in which we now vectorize a loop is never executed so we probably see some instruction cache effects. There is a 2% improvement in h264ref. There is one or the other TSCV loop kernel that speeds up. radar://13681598" llvm-svn: 184724
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll')
-rw-r--r--llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll b/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
index bab6300f2e7..6ef101074de 100644
--- a/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
+++ b/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
@@ -30,7 +30,7 @@ if.then: ; preds = %for.body
if.end: ; preds = %for.body, %if.then
%z.0 = phi i32 [ %add1, %if.then ], [ 9, %for.body ]
store i32 %z.0, i32* %arrayidx, align 4
- %indvars.iv.next = add i64 %indvars.iv, 1
+ %indvars.iv.next = add nsw i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp eq i32 %lftr.wideiv, %x
br i1 %exitcond, label %for.end, label %for.body
OpenPOWER on IntegriCloud