Packet Stream connections have a field called the packet ID. If the ADF graph provides the packet ID field, the x86 simulator uses the canonical zero-based indexing scheme for packet IDs.
The first branch on the output of a split node has a packet ID equal to 0. This is followed by 1, 2, 3, and so on up to 31 (5-bit packet ID).
If the ADF graph does not provide the packet ID field, there are discrepancies between the AI Engine simulator and the x86 simulator. To resolve these discrepancies and for additional information on providing custom packet IDs when the source is outside the ADF graph, see Packet Switching and the AI Engine Simulator in AI Engine Kernel and Graph Programming Guide (UG1079).
The nature of packet merging means that the x86 simulator and the AI Engine simulator produce non-deterministic results. If an AI Engine on a packet split branch finishes processing data first, its data appears on the output of the packet merge first. Exactly which core finishes first is highly dependent on both the kernel code and the incoming data. So any downstream processing blocks must be prepared to handle this behavior.