<div dir="ltr">Did you also remove IMUL32rm and IMUL32rmi? The example assembly you provides look to be 32-bit multiplies since they use %r15d and %r10d.<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><br></div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div><br></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 10, 2018 at 10:01 AM Abhinav Jangda via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Hello everyone,</div><div><br></div><div>For some project, I need to remove some addressing modes of operands in IMUL and ADD instructions. More specifically, I do not want LLVM to generate instruction like:</div><div><br></div><div><i>imull (%r9,%r11), %r15d</i></div><div><br></div><div>Instead I will like LLVM to generate code which first loads address into a register and then multiply it, i.e., something like:</div><div><br></div><div><i>movl (%r9, %r11), %r10d</i></div><div><i>imull %r10d, %r15d</i></div><div><br></div><div>I have remove all <i>IMUL64rm </i>and <i>IMUL64rmi</i> instructions in Target/X86/X86InstrArithmetic.td, but still <i>imull</i> instruction with memory operand is generated. Can anyone please point me to the write place? <br></div><div>I will prefer a solution related to llvm6.0, however, solution for any llvm version is welcome.</div><div><br></div><div>Thank You,</div><div><br></div><div>Abhinav Jangda<br></div></div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>