[PATCH] Induction variables: support arbitrary constant step

hfinkel at anl.gov hfinkel at anl.gov
Fri Oct 31 08:37:47 PDT 2014


Can you please include a more-verbose description of what's going on here? Since we don't have masked stores, I assume this affects only loops without stores (which means reductions). For reductions with non-unit stride, we can indeed load data in larger vectors and then only use some of the vector lanes for the reduced value (and I agree this is a useful capability to have), but for that I'd expect to see changes in the code after this comment:

    if (VF > 1) {
      // VF is a power of 2 so we can emit the reduction using log2(VF) shuffles
      // and vector ops, reducing the set of values being computed by half each
      // round.

but I don't see any changes there, so I don't understand how you're selecting out only the correct vector lanes.

http://reviews.llvm.org/D6051






More information about the llvm-commits mailing list