<div dir="ltr">Thanks, Tim. <div><br></div><div>"<span style="font-size:14px">setOperationAction(ISD::</span><span style="font-size:14px">ConstantFP, MVT::f64, Legal)" and some modification of "LowerOperand" and "printOperand" make this lowering "double" works.</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">Regards,</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">Xiangyang</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-02 13:36 GMT-05:00 Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 2 December 2015 at 10:30, Xiangyang Guo via llvm-dev<br>
<span class=""><<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> GRWideRegs can be f64 and i64. However, the 'const-long' works while the<br>
> 'const-double' doesn't work. From the -debug log, it seems "f64 =<br>
> ConstantFP" is replaced by "f64,ch = load" and this is where the error<br>
> happens. Can anyone tell me why this happens and how to make this work?<br>
<br>
</span>It's probably being lowered to a litpool load by default. You need to<br>
call "setOperationAction(ISD::ConstantFP, MVT::f64, Legal)" in<br>
ISelLowering.cpp.<br>
<br>
Cheers.<br>
<span class="HOEnZb"><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br></div>