<div dir="ltr">Hi there,<div><br></div><div>I am doing relocation in my backend by calling my function getAddrNonPic:</div><div><br></div><div>SDValue getAddrNonPIC(NodeTy *N, SDLoc DL, EVT Ty, SelectionDAG &DAG)const{</div><div>  SValue Hi=getTarget(N,Ty,DAG, MyBackend::Hi16);</div><div>  SValue Lo=getTarget(N,Ty,DAG, MyBackend::Lo16);<br></div><div>  return DAG.getNode(ISD::ADD, DL, Ty, </div><div>    DAG.getNode(MyBackend::Hi16, DL, Ty, Hi),</div><div>    DAG.getNode(MyBackend::Lo16, DL, Ty, Ho));</div><div>}</div><div><br></div><div>But sometimes a load instruction is lowered into:</div><div><br></div><div>(r2=lo16(symbol))</div><div>lw r1, r2(Hi16(symbol))</div><div><br></div><div>But what I want is:</div><div>(r2=lo16(symbol))</div><div>(r3=hi16(symbol))</div><div>add r2, r2,r3</div><div>lw r1, r2(0)</div><div><br></div><div>Can you please show me some hints?</div><div><br></div><div>Thanks,</div><div>Xiaochu</div><div><br></div></div>