[PATCH] D20639: SLPVectorizer: Move propagateMetadata to VectorUtils

Justin Lebar via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 11 10:54:22 PDT 2016


jlebar added a comment.

Many bugs in bugpoint died to bring us this reduced testcase.  Turns out it's very close to what I originally to write by hand, but subtly different in some way that I don't care to investigate further.

  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-unknown-linux-gnu"
  
  define void @fn(i8* readonly %first.coerce, i8* readnone %last.coerce, i8* nocapture %result) {
  for.body.preheader:                           
    br label %for.body
  
  for.body:                                     
    %result.addr.05 = phi i8* [ %incdec.ptr, %for.body ], [ %result, %for.body.preheader ]
    %first.sroa.0.04 = phi i8* [ %incdec.ptr.i.i.i, %for.body ], [ %first.coerce, %for.body.preheader ]
    %0 = load i8, i8* %first.sroa.0.04, align 1, !range !5
    store i8 %0, i8* %result.addr.05, align 1
    %incdec.ptr.i.i.i = getelementptr inbounds i8, i8* %first.sroa.0.04, i64 1
    %incdec.ptr = getelementptr inbounds i8, i8* %result.addr.05, i64 1
    %lnot.i = icmp eq i8* %incdec.ptr.i.i.i, %last.coerce
    br i1 %lnot.i, label %for.end.loopexit, label %for.body
  
  for.end.loopexit:                             
    ret void
  }
  
  !5 = !{i8 0, i8 2}


http://reviews.llvm.org/D20639





More information about the llvm-commits mailing list