Issues matching branch instruction using TableGen pattern

Hello everybody,

I am working on an out of tree backend for my master thesis. However I am currently stuck with the following issue:

I have this branch instruction which I tried to match with a pattern, however it somehow fails, I tried to expand the patterns to include everything I could think of, both matching the register classes used (which are all f32) and fpconstants as well. I think somehow the operands are screwed as it fails on child2 which is, if numbered from 0 the jump address. But I have no idea what is going wrong or how to debug this further.

Thanks for taking the time to read this and possibly have a look.

//////////// Relevant SOURCE & OUTPUT //////////////

The relevant tablegen looks like this:

def SDT_PDCPUFBGT2 : SDTypeProfile<0, 3, []>;

def PDFBGT : SDNode<"PDCPUISD::FBGT", SDT_PDCPUFBGT2, [SDNPHasChain]>;

image001.png

The SNPHasChain increased all the child numbers. A node with a chain should have a MVT::Other chain value as the first operand.

Is that operand missing when you called getNode?

image001.png

Legend,

This was indeed the issue. Thanks a lot!

image001.png