<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 5, 2013 at 2:25 PM, Tom Stellard <span dir="ltr"><<a href="mailto:tom@stellard.net" target="_blank">tom@stellard.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">On Mon, Aug 05, 2013 at 02:09:58PM -0400, Francois Pichet wrote:<br>

> On my target store/load of f32 or i32 are equivalents.<br>
> Previously I had duplicate instructions def in .td to map f32 and i32 to<br>
> the same opcode.<br>
><br>
> I deleted all that and I instead tried a new approach (to simplify things) :<br>
><br>
>   setOperationAction(ISD::STORE, MVT::f32, Promote);<br>
>   AddPromotedToType(ISD::STORE, MVT::f32, MVT::i32);<br>
>   setOperationAction(ISD::LOAD, MVT::f32, Promote);<br>
>   AddPromotedToType(ISD::LOAD, MVT::f32, MVT::i32);<br>
><br>
> Now SelectionDAGLegalize::LegalizeDAG() get stuck into an infinite loop.<br>
> What is going on?<br>
><br>
> I still have the following:(but I think that's fine)<br>
>   addRegisterClass(MVT::f32, &Opus::GR32RegClass);<br>
<br>
</div></div>Have you specified a register class for MVT::i32?  If not, I think that<br>
may be your problem.<br>
<span class=""><font color="#888888"><br>
-Tom<br></font></span></blockquote><div><br></div><div>Yes I have, f32 and i32 map to the same register class:</div><div>  addRegisterClass(MVT::i32, &Opus::GR32RegClass);</div><div> </div></div><br></div></div>