Is it correct for a glue operand to be replaced with a chain?


I am confused about the behavior of chain of glue operands; I have a node
that receives the chain and a glue operand from the same node, and the ISEL
DAG looks how I want it to. However, once it passes to scheduling, the glue
no longer exists and the nodes are just chained, but twice.

ISel output:
ISEL: Starting pattern match on root node: 0x2c689c0: i32,ch = SHADDXH
0x2c688c0:2, 0x2c686c0, 0x2c688c0:1 [ID=13]

  Initial Opcode index to 6962
  Morphed node: 0x2c689c0: i32,ch = SHADDXH_RA 0x2c66500, 0x2c688c0:2,

Final schedule output:
SU(4): 0x2c689c0: i32,ch = SHADDXH_RA 0x2c66500, 0x2c688c0:1, 0x2c688c0:1

Is this correct behavior? Because InstrEmitter then complains that the nodes
do not match the tablegen file, which I would say is correct. I'm letting
tablegen doing the pattern matching on the instructions, and this is
involving address calculations is that makes any difference... Does anyone
have any ideas?