<div dir="ltr"><div><div>I'm confused about how to specify DAG patterns for a given instruction<br><br></div>Here is an example for my target<br><br>class ALU1_RR<bits<4> subOp, string asmstr, SDNode OpNode><br>  : ALU_RR<subOp, asmstr,<br>           [(set GPR:$rD, (OpNode (i32 GPR:$rA), (i32 GPR:$rB)))]>;<br><br>def ADD  : ALU1_RR<0x0, "l.add", add>;<br><br></div>The set operation simply creates a list. The add operation creates a union. So at the end   [(set GPR:$rD, (OpNode (i32 GPR:$rA), (i32 GPR:$rB)))] becomes a just a regular set. How come this is a DAG? I feel like I'm missing something. Would anyone be able to help with the explanation?<br><div><div><div><div><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Rail Shafigulin<br></div>Software Engineer <br>Esencia Technologies<br></div></div></div></div>
</div></div></div></div></div>