<div dir="ltr"><div><div>Given the following definitions:<br><br>   def SDT_XSTGMVINI     : SDTypeProfile<1, 1, [SDTCisInt<0>]>;<br>   def XSTGMVINI         : SDNode<"XSTGISD::MVINI",      SDT_XSTGMVINI>;<br><br>  def SDT_RELADDR       : SDTypeProfile<1, 2, []>;<br>  def XSTGRELADDR       : SDNode<"XSTGISD::RELADDR", SDT_RELADDR>;<br><br><br>let Constraints = "$dst = $addr", Uses= [GRP] in {<br>  def RelAddr           : XSTGPseudo< (outs GPRC:$dst),<br>                                      //(ins GPRC:$spoff, GPRC:$addr),<br>                                      (ins i64imm:$spoff, i64imm:$addr),<br>                                      "! RELADDR $spoff, $dst",<br>                                      [(set GPRC:$dst, (XSTGRELADDR i64:$spoff, <br>                                                                    (XSTGMVINI i64:$addr)<br>                                                       )<br>                                      )]>;<br>}<br><br><br></div>When I compile I get: <br>XSTGInstrInfo.td:903:3: error: In RelAddr: Could not infer all types in pattern!<br>  def RelAddr           : XSTGPseudo< (outs GPRC:$dst),<br>  ^<br><br><br></div>I  thought that perhaps I could explicitly add the type in like this:<br><br>let Constraints = "$dst = $addr", Uses= [GRP] in {<br>  def RelAddr           : XSTGPseudo< (outs GPRC:$dst),<br>                                      //(ins GPRC:$spoff, GPRC:$addr),<br>                                      (ins i64imm:$spoff, i64imm:$addr),<br>                                      "! RELADDR $spoff, $dst",<br>                                      [(set GPRC:$dst, (XSTGRELADDR i64:$spoff, <br>                                                                    i64:(XSTGMVINI i64:$addr)<br>                                                       )<br>                                      )]>;<br>}<br><div><br><div><br></div><div>But that causes another problem:<br><br>XSTGInstrInfo.td:908:73: error: expected variable name in dag literal<br>                                                                    i64:(XSTGMVINI i64:$addr)<br>                                                                        ^<br></div><div>How can this be resolved?<br><br></div><div>Phil<br></div><div><br></div></div></div>