diff options
| author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-06-24 12:09:15 +0000 | 
|---|---|---|
| committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-06-24 12:09:15 +0000 | 
| commit | b252c11cccfac80351d854400dd83d4f07c87d12 (patch) | |
| tree | f9200cccd453782524d6181932b7407803f26fd0 /llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll | |
| parent | 91472fa4fc220df5a4c7525e86cabce24f5d5e1d (diff) | |
| download | bcm5719-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.ll | 2 | 
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 | 

