<div dir="ltr">On my target store/load of f32 or i32 are equivalents.<div>Previously I had duplicate instructions def in .td to map f32 and i32 to the same opcode.</div><div><br></div><div>I deleted all that and I instead tried a new approach (to simplify things) :<br>
</div><div><br></div><div><div> setOperationAction(ISD::STORE, MVT::f32, Promote);</div><div> AddPromotedToType(ISD::STORE, MVT::f32, MVT::i32);</div><div> setOperationAction(ISD::LOAD, MVT::f32, Promote);<br></div><div>
AddPromotedToType(ISD::LOAD, MVT::f32, MVT::i32);</div></div><div><br></div><div>Now SelectionDAGLegalize::LegalizeDAG() get stuck into an infinite loop. What is going on?</div><div><br></div><div>I still have the following:(but I think that's fine)</div>
<div><div> addRegisterClass(MVT::f32, &Opus::GR32RegClass);</div></div><div><br></div><div>Thanks.<br></div><div>(My LLVM is ~3 months old)</div></div>