<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Nov 3, 2013 at 10:40 AM, Chris Smowton <span dir="ltr"><<a href="mailto:chris@smowton.net" target="_blank">chris@smowton.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>What should the test case look like? I
      attach a test C file which, when compiled with -O1 using Dragonegg
      and Clang yields the attached ll files. I had to hack out
      Dragonegg's call to ExpandInlineAsm to get this (Clang never
      attempts to call it until codegen time). -O1 is necessary for GCC
      (4.6) to insert its internal implementation of htons.<br></div></div></blockquote><div><br></div><div>If dragonegg.ll doesn't generate the bswap intrinsic before and does after that makes it a great candidate for a testcase :)</div>

<div><br></div><div>Just needs a few things on top of it:</div><div><br></div><div>a) some boiler plate. Take a look at test/CodeGen/X86/inline-asm-h.ll</div><div>b) a FileCheck line, probably checking for that the resultant #APP/#NOAPP don't exist in the final output.</div>

<div>c) You can remove the module info etc as well from the top since the command line from the boiler plate should handle it.</div><div><br></div><div>FWIW patches should be made against head as well. Your patch didn't apply cleanly so in looking at this I've gone ahead and done this stuff and applied it as r194016. For next time this should give you a guide though.</div>

<div><br></div><div>Thanks!</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div>
      <br>
      Then CodeGenPrepare with a TargetLowering should raise both into
      llvm.bswap intrinsics; however I don't know a more elegant way to
      observe that than passing -print-after-all to llc, as calling opt
      -codegenprepare does so without a TargetLowering.<br>
      <br>
      Both dragonegg.ll and clang.ll are raised into intrinsics with my
      patch; only clang.ll is without it.<br>
      <br>
      Chris<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr"><br>
        <br>
        Compiling test.c (attached) should yield bitcode like
        dragonegg-successful.ll.Looks pretty reasonable, needs a
        testcase :)
        <div><br>
        </div>
        <div>-eric</div>
      </div><div><div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Thu, Oct 31, 2013 at 11:49 AM, Chris
          Smowton <span dir="ltr"><<a href="mailto:chris@smowton.net" target="_blank">chris@smowton.net</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">See <a href="http://llvm.org/bugs/show_bug.cgi?id=17757" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=17757</a>
            for details; Chris Lattner advised I should cross-post the
            patch here.<span><font color="#888888"><br>
                <br>
                Chris<br>
              </font></span><br>
            _______________________________________________<br>
            llvm-commits mailing list<br>
            <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
            <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </div></div></blockquote>
    <br>
  </div>

</blockquote></div><br></div></div>