<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>