<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi All,</p>
    <p>@Sander, thanks a lot for the clear and concise summary of the
      whole effort. <br>
    </p>
    <blockquote type="cite"
cite="mid:CAPH-gfedVigDk-or2dFXrF+1MdDkBN7nb8ozOUguy2YcJvaZjw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr"><br>
        </div>
        <div dir="ltr">On Wed, 11 Nov 2020 at 22:06, Sander De Smalen
          <<a href="mailto:Sander.DeSmalen@arm.com"
            moz-do-not-send="true">Sander.DeSmalen@arm.com</a>>
          wrote:<br>
        </div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">We (Arm) prefer starting
            out with adding support for 1 in upstream LLVM, because it
            is the easiest to support and gives a lot of ‘bang for buck’
            that will help us incrementally add more scalable auto-vec
            capabilities to the vectorizer. A proof of concept of what
            this style of vectorization requires was shared on
            Phabricator recently: <a
              href="https://reviews.llvm.org/D90343" rel="noreferrer"
              target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D90343</a>.<br>
            <br>
            Barcelona Supercomputer Centre shared a proof of concept for
            style 2 that uses the Vector Predication Intrinsics proposed
            by Simon Moll (VP: <a
              href="https://reviews.llvm.org/D57504" rel="noreferrer"
              target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D57504</a>,
            link to the POC: <a
              href="https://repo.hca.bsc.es/gitlab/rferrer/llvm-epi"
              rel="noreferrer" target="_blank" moz-do-not-send="true">https://repo.hca.bsc.es/gitlab/rferrer/llvm-epi</a>).
            In the past Arm has shared an alternative implementation of
            2 which predates the Vector Predication intrinsics (<a
              href="https://reviews.llvm.org/D87056" rel="noreferrer"
              target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D87056</a>).<br>
          </blockquote>
          <div><br>
          </div>
          <div>I think both are equally good. The third one seems a bit
            too restrictive to me (but I'm probably missing something).</div>
          <div><br>
          </div>
          <div>I have previously recommended (1) for the sake of
            simplicity in implementation (one step at a time), but I
            don't see anything wrong in us trying both, even at the same
            time. Or even a merged way where you first vectorise, then
            predicate, then fuse the tail.</div>
        </div>
      </div>
    </blockquote>
    <p>I should have mentioned this earlier, but our first
      implementation was also the first approach (unpredicated vector
      body, scalar tail). It gave us a good base for implementing the
      2nd approach on top, which was mostly modifying parts of the
      existing tail-folding infrastructure and use a TTI hook to decide
      to emit VP intrinsics. It does make a lot of sense to start with
      the first approach in the upstream. It will also let everyone get
      a taste of auto-vectorization  for scalable vectors and give us a
      base for more insightful discussions on the best way to support
      other approaches on top of it. <br>
    </p>
    <blockquote type="cite"
cite="mid:CAPH-gfedVigDk-or2dFXrF+1MdDkBN7nb8ozOUguy2YcJvaZjw@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>We have enough interested parties that we can try out
            multiple solutions and pick the best ones, or all of them.
            And as you say, they'll all use the same plumbing, so it's
            more sharing than competing.</div>
          <br>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
    <p>Thanks and Regards,</p>
    <p>Vineet<br>
    </p>
  
<br>
<br>
WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.
<br><br>
<a href="http://www.bsc.es/disclaimer">http://www.bsc.es/disclaimer</a>
<br>
</body>
</html>