<div dir="ltr"><div class="gmail_default" style="font-size:small"><div class="gmail_default">What is the difference between these two fragments (taken from two different tblgen record dumps)?</div><div class="gmail_default"><br></div><div class="gmail_default">  dag OutOperandList = (outs GPR:$rd);<br></div><div class="gmail_default"><div class="gmail_default">  dag OutOperandList = (outs R2);</div><br class="gmail-m_-3045113191812868031gmail-Apple-interchange-newline"></div><div class="gmail_default">The first is from the RISCV backend record dump. There will be a substitution at some point for $rd. In the second, I'm specifying R2, no substitution necessary.</div><div class="gmail_default"><br></div><div class="gmail_default">If I specify GPR64:R2 or i64:R2 in my Instruction def, rather than just R2, tblgen complains:</div><div class="gmail_default"><br></div><div class="gmail_default">  error: expected variable name in dag literal<br></div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">If I use R1000 (which isn't defined) I get what I'd expect:</div><div class="gmail_default"><br></div><div class="gmail_default">  error: Variable not defined: 'R1000'</div></div><div class="gmail_default"><br></div><div class="gmail_default">There isn't any documentation (that I could find) for this syntax. Consequently, I'm a little worried that using R2 rather than something:R2 is somehow wrong.</div><div class="gmail_default"><br></div><div class="gmail_default">Why does the RISCV dag use GPR:$rd rather than just $rd?</div><div class="gmail-yj6qo gmail-ajU" style="outline:none;padding:10px 0px;width:22px;margin:2px 0px 0px">C</div></div></div>