<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">Op 3/18/2019 om 8:00 AM schreef Sven
      Barth via fpc-devel:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFMUeB843H49QHuGLD7WqOPzpmyycFqXPsepqvHKZBhfGcAKUQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">
        <div>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">J. Gareth Moreton <<a
                href="mailto:gareth@moreton-family.com"
                moz-do-not-send="true">gareth@moreton-family.com</a>>
              schrieb am So., 17. März 2019, 23:27:<br>
            </div>
            <br>
          </div>
        </div>
        <div dir="auto">And I believe that this is the advantage of
          intrinsics, because here the compiler *can* decide to use a
          different register. Especially if the compiler supports
          instruction scheduling and such. </div>
        <div dir="auto">At work I've worked with AES-NI and I
          definitively preferred to work with the intrinsics and didn't
          have to care about what registers to use, because the compiler
          and optimizer took care of that. <br>
        </div>
      </div>
    </blockquote>
    <p>(well, better double check output, it is not always ideal)<br>
    </p>
    <p>I've seen nice examples in simd lib
      (<a class="moz-txt-link-freetext" href="http://ermig1979.github.io/Simd/index.html">http://ermig1979.github.io/Simd/index.html</a>), where they use
      generics to bundle intrinsics into blocks, and then reuse them
      multiple times, e.g. 3 times for the first, bulk and last line of
      an image.<br>
    </p>
    <blockquote type="cite"
cite="mid:CAFMUeB843H49QHuGLD7WqOPzpmyycFqXPsepqvHKZBhfGcAKUQ@mail.gmail.com">
      <div dir="auto">
        <div dir="auto">That is something that Pascal should stand for:
          ease of use. Assembler is not easy to use. </div>
        <br>
      </div>
    </blockquote>
    <p>If something is generic enough to be an intrinsic, it should be
      an intrinsic and as secured as much as possible.</p>
    <p>Inlinable assembler however is something to get some of that
      defining power also in the user's hand. It doesn't really matter
      that there are border cases, as long as they can be described,
      since assembler is intrinsically unportable anyway. But having
      something like that is quite important I think. Though examples
      come more from my embedded, and less from my PC work (even though
      I use AVX2 there. Intrinsics would be better for many cases)<br>
    </p>
  </body>
</html>