<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 27, 2014 at 5:17 AM, Adam Nemet <span dir="ltr"><<a href="mailto:anemet@apple.com" target="_blank">anemet@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><br><div><div><div class="h5"><div>On Jun 25, 2014, at 10:40 PM, Jun Koi <<a href="mailto:junkoi2004@gmail.com" target="_blank">junkoi2004@gmail.com</a>> wrote:</div>

<br><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 26, 2014 at 10:23 AM, Adam Nemet <span dir="ltr"><<a href="mailto:anemet@apple.com" target="_blank">anemet@apple.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><div><div><br></div><div><br>On Jun 25, 2014, at 7:05 PM, Jun Koi <<a href="mailto:junkoi2004@gmail.com" target="_blank">junkoi2004@gmail.com</a>> wrote:<br>



<br></div><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 26, 2014 at 5:47 AM, Adam Nemet <span dir="ltr"><<a href="mailto:anemet@apple.com" target="_blank">anemet@apple.com</a>></span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Jun,<br>
<div><br>
On Jun 25, 2014, at 8:14 AM, Jun Koi <<a href="mailto:junkoi2004@gmail.com" target="_blank">junkoi2004@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> I am trying to assemble below instruction with latest LLVM code, but fail. Am I doing something wrong, or is this a bug?<br>
><br>
><br>
> $ echo "vaddps zmm7 {k6}, zmm2, zmm4, {rd-sae}"|./Release+Asserts/bin/llvm-mc -assemble -triple=x86_64 -mcpu=knl -show-encoding -x86-asm-syntax=intel<br>
>     .text<br>
> <stdin>:1:31: error: unknown token in expression<br>
> vaddps zmm7 {k6}, zmm2, zmm4, {rd-sae}<br>
>                               ^<br>
> <stdin>:1:31: error: unknown token in expression<br>
> vaddps zmm7 {k6}, zmm2, zmm4, {rd-sae}<br>
<br>
</div>Unfortunately, I don’t think sae is supported yet.  (I think the ^ is misplaced; it should point to the {rd-sae}.)<br>
<br>
(I may be wrong here but looks like even the X86AsmParser is lacking support for sae even though some instruction in the .td file contain {sae} in their asm syntax.)<br></blockquote><div><br></div><div>Oh it seems also the disasm support for sae is lacking:<br>





<br>$ echo "62 f1 6c 1e 58 fc"|./Release+Asserts/bin/llvm-mc -disassemble -triple=x86_64<br>    .text<br><stdin>:1:4: error: invalid input token<br>62 f1 6c 1e 58 fc<br></div></div></div></div></blockquote>



<div><br></div></div></div><div>That's not too surprising; assembler and disassembler support go hand in hand. </div><div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div>I hope there is a plan to o support this SAE stuff soon?<br></div></div></div></div></blockquote><div><br></div></div>Assembler support is in pretty good shape otherwise. I expect that this will be added as soon as someone really needs it. Help is always welcome ;)<div>



<br></div></div></blockquote><div><br></div><div>Yes, I would love to, but do not know where to fix.<br><br></div><div>Seems like I need to work on the lib/Target/X86/X86InstrAVX512.td file to add the missing SAE support?<br>

</div></div></div></div></blockquote><div><br></div></div></div><div>I think it will be a bit more involved than that.  As I said, I don’t think even the parser supports RC or SAE.  See lib/Target/X86/AsmParser/X86AsmParser.cpp.</div>

<div><br></div><div>Looks like that some instructions have RC operands (see avx512_vcvt_fp_with_rc) and also a bit of support in the InstPrinter (X86ATTInstPrinter::printRoundingControl).  I am actually not sure that that is properly hooked up in the disassembler.</div>

<div><br></div></div></div></blockquote><div><br><div>yes, it seems even there are some little code supporting SAE & 
Rounding mode in the source, nothing works: I tried many binary sequence
 having SAE, but "llvm-mc -disassemble" never can decode them.<br>
 <br></div><div>so on this part we are behind both Gnu Gas & Nasm: 
they both can assemble & disassemble (Nasm) AVX512 code with SAE 
& rounding mode.<br><br><br></div><div>thanks,<br></div>Jun<br></div></div></div></div>