[LLVMdev] Multi instruction pattern help

Chris Lattner clattner at apple.com
Mon Oct 6 21:15:00 PDT 2008


On Oct 6, 2008, at 5:42 PM, Villmow, Micah wrote:

> I am trying to get a multi instruction pattern to work and seem to  
> be running into trouble.
> The problem itself is fairly simple. I need to go from 64bit floats  
> to 32bit integers. As the backend doesn’t support this natively but  
> has a way of converting it, I’d prefer to get this working via  
> tablegen.
>
> What I thought would work from the previous discussion is the  
> following:
> def : Pat<(fp_to_uint (f64 GPR:$src0)),
>           (fp_to_uint (f32 (dp_to_fp (f64 GPR:$src0))))>;
>
> Which when it runs across a 64bit float, it does a double to single  
> conversion, and then calls the 32bit float to int routine.



>
> However, tablegen fails with the following error:
> 1>anonymous.2:  (fp_to_uint:isInt GPR:f64:$src0)

This is trying to tell you that it inferred that fp_to_uint returns an  
integer type, but it doesn't know which one.  Try disambiguating  
either the input or output with an explicit type, ilke (i32  
(fp_to_uint (...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081006/84cebfbf/attachment.html>


More information about the llvm-dev mailing list