[LLVMdev] TableGen Type Inference

Dan Gohman gohman at apple.com
Fri Jun 5 15:41:39 PDT 2009


How is bc_memopv4i32 defined?  The bitconvert in the tablegen
output is marked isInt, which means it's the node that didn't get
inferred.

Dan

On Jun 4, 2009, at 1:06 PM, David Greene wrote:

> Can someone explain why TableGen can't figure this out?
>
> VCVTDQ2PS128rm: 	(set:isVoid VR128:v4f32:$dst, (sint_to_fp:v4f32
> (bitconvert:isInt (ld:v4i32 addr:iPTR:$src)<<P:Predicate_memop>>)))
> llvm/tblgen: In VCVTDQ2PS128rm: Could not infer all types in pattern!
>
> The pattern as written looks like this:
>
> [(set VR128:$dst, (v4f32 (sint_to_fp (bc_memopv4i32 addr:$src))))]
>
> I'm trying to unify AVX/SSE converts in a reasonable way.  Right now,
> X86InstrSSE.td doesn't have patterns for sint_to_fp and fp_to_sint
> with memory operands.  I guess this is why, but I don't understand
> why it's illegal.
>
>                                 -Dave
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list