fhahn marked 2 inline comments as done. fhahn added inline comments.
================ Comment at: clang/docs/LanguageExtensions.rst:553 +Each builtin returns a scalar equivalent to applying the specified +operation(x, y) as horizontal recursive pairwise reduction to all vector +elements. In each reduction step, ``operation(x, y)`` is applied to adjacent ---------------- kparzysz wrote: > It's really not clear what "horizontal recursive pairwise" means unless one > has read the mailing list discussions. Maybe you could spell it out, e.g. > "recursive even-odd pairwise reduction" or something like that. Thanks, I used that wording! ================ Comment at: clang/docs/LanguageExtensions.rst:552 +operation(x, y) as pairwise tree reduction to the input. The pairs are formed +by concatenating both inputs and pairing adjacent elements. + ---------------- craig.topper wrote: > fhahn wrote: > > craig.topper wrote: > > > scanon wrote: > > > > fhahn wrote: > > > > > craig.topper wrote: > > > > > > I'm not sure I understand what is being concatenated here. > > > > > I tried to spell it out more clearly. I'm still not sure if that > > > > > spells it out as clearly as possibly and I'd appreciate any > > > > > suggestions on how to improve the wording. > > > > It's unclear because there's no apparent "first" or "second" vector; > > > > there's just a single argument, and the result isn't a vector, it's a > > > > scalar. I think you want to say something like: "the operation is > > > > repeatedly applied to adjacent pairs of elements until the result is a > > > > scalar" and then provide a worked example. > > > The input is a single vector. I'm not understanding where we get a second > > > vector to concatenate. > > Oh yes, now I see where the confusion was coming from. I was thinking about > > the reduction tree and how the input is broken up. Sorry for the confusing > > wording. I gave it another try, should be much simpler again now. > Should it somehow mention the pair is the even element `i` and the odd > element `i+1`. There are n-1 adjacent pairs in an n element vector, but we > want non-overlapping pairs. > > Should probably spell out the non-power2 behavior. Presumably we pad identity > elements after the last element to widen the vector out to a power 2 and then > proceed normally? > Should it somehow mention the pair is the even element i and the odd element > i+1. There are n-1 adjacent pairs in an n element vector, but we want > non-overlapping pairs. Thanks, I tried to update the wording to make it clear that it operates on even-odd non-overlapping pairs. > Should probably spell out the non-power2 behavior. Presumably we pad identity > elements after the last element to widen the vector out to a power 2 and then > proceed normally? Good point, done! > I think you want to say something like: "the operation is repeatedly applied > to adjacent pairs of elements until the result is a scalar" and then provide > a worked example. Used and added an example. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111529/new/ https://reviews.llvm.org/D111529 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits