[LLVMdev] fp_round libcall

Bruno Cardoso Lopes bruno.cardoso at gmail.com
Mon Jul 7 13:34:32 PDT 2008


On Mon, Jul 7, 2008 at 5:37 PM, Chris Lattner <sabre at nondot.org> wrote:
> On Mon, 7 Jul 2008, Bruno Cardoso Lopes wrote:
>> I'm trying to emit FP_ROUND f64 -> f32 considering a mips target that
>> only supports single
>> float point operations. The problem is that f32 is considered legal on this
>> target but f64 doesn't and the only way I can codegen this instruction is using
>> setConvertAction(MVT::f64, MVT::f32, Expand), which issues a EmitStackConvert.
>> What if I want a libcall instead? What should I do? The libcall FROUND_F64_F32
>> is there, but it seems that it cannot be reached without hacking. What
>> should I do
>> to support this? Am I missing something?
>
> Is it possible to handle this with a custom expander?

I think don't, If you don't call setConvertAction it considers the return
type legal (f32, which is true) and asserts into LegalizeOp, whether
the action is Custom or Expand.

-- 
Bruno Cardoso Lopes
http://www.brunocardoso.cc
"When faced with untenable alternatives, you
 should consider your imperative."



More information about the llvm-dev mailing list