<div dir="ltr">Hi, It seems like CodeEmitterGen gets confused when we use named suboperands.<div><br></div><div>sample code:</div><div><br></div><div><div>def memsrc : Operand<i16> {</div><div>  let PrintMethod = "printSrcMemOperand";</div><div>  let MIOperandInfo = (ops GR16:$ra, i16imm:$imm_i16);</div><div>  let ParserMatchClass = memAsmOperand;</div><div>}</div></div><div><br></div><div><div>def LOAD16m : Inst32rri<0x0, (outs GR16:$rb), (ins memsrc:$src2),</div><div>                        "ldi16 {$rb, $src2}",</div><div>                        [(set GR16:$rb, (load addr:$src2))]>;</div></div><div><br></div><div>class Inst32rri<bits<6> opcode, dag outs, dag ins, string asmstr, list<dag> pattern><br></div><div><div style="">    : TargetInst32<opcode, outs, ins, asmstr, pattern> {</div><div style="">  bits<5> rb;</div><div style="">  bits<5> ra;</div><div style="">  bits<16> imm_i16;</div><div style=""><br></div><div style="">  let Inst{9-5} = rb; // operand 0</div><div style="">  let Inst{4-0} = ra; // operand 1</div><div style="">  let Inst{31-16} = imm_i16; // operand 2</div><div style="">}</div></div><div style=""><br></div><div style="">And this code was generated</div><div style=""><br></div><div style="">// op: rb -- Operand #0</div><div style=""><div>op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);</div><div>Value |= (op & UINT64_C(31)) << 5;</div><div><br></div><div>// op: ra -- Operand #0</div><div>op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);</div><div>Value |= op & UINT64_C(31);<br></div><div><br></div><div>// op: imm_i16 -- Operand #1<br></div><div>op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);</div><div>Value |= (op & UINT64_C(65535)) << 16;<br></div><div><br></div><div><br></div></div><div style=""><br></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font color="#38761d" style="font-family:sans-serif;font-size:small">Regards</font><div style="color:rgb(0,0,0);font-family:sans-serif;font-size:small"><font color="#134f5c">Aman Priyadarshi</font></div><div style="color:rgb(0,0,0);font-family:sans-serif;font-size:small"><a href="http://www.amaneureka.me/">www.amaneureka.me</a></div></div></div>