[LLVMdev] Error w/ Tablegen + Intrinsics

Nate Begeman natebegeman at mac.com
Tue Apr 14 18:47:13 PDT 2009


Are you using isTarget = 1 in your intrinsics file?

On Apr 14, 2009, at 6:34 PM, Villmow, Micah wrote:

> It seems that Tablegen is generating intrinsic ID’s off by  in  
> DAGISel.inc
>
> In DAGISel.inc, I have the following pattern:
> int64_t CN1 = Tmp0->getZExtValue();
>
>     // Pattern: (intrinsic_w_chain:f32 103:iPTR, GPRF32:f32:$src0,  
> GPRF32:f32:$src1, GPRF32:f32:$src2)
>     // Emits: (MACRO_FMA_f32:f32 GPRF32:f32:$src0, GPRF32:f32:$src1,  
> GPRF32:f32:$src2)
>     // Pattern complexity = 8  cost = 1  size = 0
>     if (CN1 == INT64_C(103)) {
>       SDValue N2 = N.getOperand(2);
>       SDValue N3 = N.getOperand(3);
>       SDValue N4 = N.getOperand(4);
>       if (N2.getNode()->getValueType(0) == MVT::f32 &&
>           N3.getNode()->getValueType(0) == MVT::f32 &&
>           N4.getNode()->getValueType(0) == MVT::f32) {
>         SDNode *Result = Emit_28(N, AMDIL::MACRO_FMA_f32, MVT::f32);
>         return Result;
>       }
>     }
>
> However, when MACRO_FMA is called, Tmp0->getZExtValue() returns 102!
>
> The section of code where this is probably wrong is:
> CodeGenDAGPatterns.cpp:1238 unsigned IID =  
> getDAGPatterns().getIntrinsicID(Operator)+1;
> Or here:
> CodeGenDAGPatterns.h:524
> const CodeGenIntrinsic &getIntrinsicInfo(unsigned IID) const {
>     assert(IID-1 < Intrinsics.size() && "Bad intrinsic ID!");
>     return Intrinsics[IID-1];
>   }
>
> These are the only locations where I can find that it is returning  
> the IID off by 1.
>
>
> If someone can let me know what I need to do in order to fix this it  
> would be greatly appreciated.
>
> Thanks,
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090414/5d3efb14/attachment.html>


More information about the llvm-dev mailing list