<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Venkat.,</p>
    <p>thanks for your reply and sorry for the long delay.</p>
    <p>I went ahead and implemented a pass that performs this
      transformation as an IR pass: <a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D95373">https://reviews.llvm.org/D95373</a></p>
    <p>It would be great if some of you could review that patch and
      provide feedback. <br>
    </p>
    <p>Thanks in advance,</p>
    <p>Best</p>
    <p>Lukas<br>
    </p>
    <pre class="moz-signature" cols="72">Lukas Sommer, M.Sc.
TU Darmstadt
Embedded Systems and Applications Group (ESA)
Hochschulstr. 10, 64289 Darmstadt, Germany
Phone: +49 6151 1622429
<a class="moz-txt-link-abbreviated" href="http://www.esa.informatik.tu-darmstadt.de">www.esa.informatik.tu-darmstadt.de</a></pre>
    <div class="moz-cite-prefix">On 22.12.20 12:51, Venkataramanan Kumar
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAF_C6=RN-cNDBZhMgdP6MtFT_JEg90mzTw7v4cYhtUyx6=Mn+g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi Lukas,</div>
        <div><br>
        </div>
        <div dir="ltr">+ Florian and Sanjay.<br>
          <div><br>
          </div>
        </div>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Tue, 22 Dec 2020 at
            02:06, Lukas Sommer <<a
              href="mailto:sommer@esa.tu-darmstadt.de" target="_blank"
              moz-do-not-send="true">sommer@esa.tu-darmstadt.de</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <p>Hi Venkat.,</p>
              <p>thanks for adding the support for libmvec!</p>
              <p>Is there a pass or something similar to replace calls
                to intrinsics that already operate on vector operands
                with calls to libmvec? <br>
              </p>
            </div>
          </blockquote>
          <div>I am not aware of any existing pass. </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <p> </p>
              <p>inject-tli-mappings seems to add the attributes only to
                scalar calls to intrinsics such as llvm.exp and the
                loop-vectorizer then might vectorize these calls. <br>
              </p>
              <p>In my use case, I'm getting vectorized calls to LLVM
                intrinsics from MLIR and would like to replace those
                with calls to libmvec, but as the code is already
                vectorized, the LoopVectorizer does not do these
                replacements. <br>
              </p>
              <p>So for example, in the LLVM IR generated from MLIR,
                there is a call such as:</p>
              <p>%103 = fmul <4 x double> %102, <double
                -5.000000e-01, double -5.000000e-01, double
                -5.000000e-01, double -5.000000e-01><br>
                %104 = tail call <4 x double>
                @llvm.exp.v4f64(<4 x double> %103)</p>
              <p>I would like to have a pass replace the call to
                llvm.exp.v4f64 with a call @_ZGVdN4v_exp(<4 x
                double>), whose declaration is inserted by
                inject-tli-mappings.</p>
              <p>Are you aware of such a pass or another way to achieve
                this behavior?</p>
            </div>
          </blockquote>
          <div>May be we should have one IR pass which does this
            conversion or make the code gen lower it to the required
            call. </div>
          <div>I have added few others to comment.</div>
          <div><br>
          </div>
          <div>regards,</div>
          <div>Venkat.</div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <p>Thanks in advance,</p>
              <p>Lukas<br>
              </p>
              <pre cols="72">Lukas Sommer, M.Sc.
TU Darmstadt
Embedded Systems and Applications Group (ESA)
Hochschulstr. 10, 64289 Darmstadt, Germany
Phone: +49 6151 1622429
<a href="http://www.esa.informatik.tu-darmstadt.de" target="_blank" moz-do-not-send="true">www.esa.informatik.tu-darmstadt.de</a></pre>
              <div>On 23.09.20 17:11, Venkataramanan Kumar via llvm-dev
                wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr"><br>
                    <div>Hi Florian and Alexandre, </div>
                  </div>
                  <br>
                  <div class="gmail_quote">
                    <div dir="ltr" class="gmail_attr">On Tue, 15 Sep
                      2020 at 19:30, Alexandre Bique <<a
                        href="mailto:bique.alexandre@gmail.com"
                        target="_blank" moz-do-not-send="true">bique.alexandre@gmail.com</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">On Tue, Sep 15,
                      2020 at 3:58 PM Venkataramanan Kumar<br>
                      <<a
                        href="mailto:venkataramanan.kumar.llvm@gmail.com"
                        target="_blank" moz-do-not-send="true">venkataramanan.kumar.llvm@gmail.com</a>>
                      wrote:<br>
                      > I have not yet started the patch work.<br>
                      ><br>
                      > Collected information about the ABI for the
                      routines.   To start with I am thinking of
                      supporting  pow/lib/exp/sin/cos/log routines till
                      VF 8 which are non masked variants in the initial
                      patch.<br>
                      > I will try to send the patch early next week.<br>
                      <br>
                      Great, let me know if you need help or don't have
                      time to look at it.<br>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>I made a patch and submitted it here.  </div>
                    <div><a href="https://reviews.llvm.org/D88154"
                        target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D88154</a><br>
                    </div>
                    <div><br>
                    </div>
                    <div>regards,</div>
                    <div>venkat.</div>
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex"> <br>
                      Regards,<br>
                      Alexandre<br>
                    </blockquote>
                  </div>
                </div>
                <br>
                <fieldset></fieldset>
                <pre>_______________________________________________
LLVM Developers mailing list
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
              </blockquote>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
  </body>
</html>